一、序列
定义:在python中序列是一组按顺序排列的值【数据组合】
在python中存在三种内置序列类型:字符串、列表、元组
优点:可支持索引和切片的操作
特征:第一个正索引为0,指向左端;第一个索引为负数,指向右端
二、切片
定义:【高级特性】可根据下标获取序列对象的任意部分数据
语法结构:[start:end:step] step默认1
strMsg='hello world'
print(strMsg)
print(strMsg[0])
print(strMsg[2:5])#左包含,右不包含
print(strMsg[2:])
print(strMsg[0:3])
print(strMsg[:3])
print(strMsg[::-1])#倒序输出,负号表示方向,从右到左遍历
三、列表list
定义:是一种有序的数据集合
特点:支持增删改查;列表中数据可变化【内存地址不变】;用[]表示列表类型,数据项用,分隔;支持索引和切片。
注意:数据项可以任意类型数据
#li=[]#空列表
li=[1,2,3,'你好']
print(type(li))
print(len(li))#len获取列表对象数据个数
strA='我喜欢python'
print(len(strA))
#查找
listA=['abcd',785,12.23,'qiuzhi',True]
print(listA)
print(listA[0])#输出第一个元素
print(listA[1:3])#输出第二个、第三个元素
print(listA[2:])
print(listA[::-1])#倒叙输出
print(listA*3)#输出3次列表中数据
#尾后追加
listA.append(['fff','ddd'])
listA.append(888)
print(listA)
#插入
listA.insert(1,'这是刚插入的')
print(listA)
#尾后批量添加
rsData=list(range(10))#强制转换为list对象
print(type(rsData))
listA.extend(rsData)
listA.extend(['11',22,33])
print(listA)
#修改
listA[0]='peter'
print(listA)
#删除
listB=list(range(10,20))
del listB[0]
print(listB)
del listB[1:3]#批量删除
print(listB)
listB.remove(18)#移除指定项,参数是数据项
print(listB)
listB.pop(1)#移除指定的项,参数是索引值
print(listB)
print(listB.index(19))#返回一个索引下标
四、元组
特点:是一组不可变的序列;用()创建元组类型,数据项用,分割;可是任意类型;元组只有一个元素时,要加上逗号,不然解释器会当作整形来处理;支持切片
tulpleA=()#空元组
print(type(tulpleA))
tupelA=('abcd',89,9.12,'peter',[11,22,33])
print(id(tupelA))
print(tupelA)
#元组查询
for item in tupelA:
print(item,end=' ')
print()
print(tupelA[2:4])
print(tupelA[::-1])
print(tupelA[::-2])#表示反转字符串,每隔两个取一次
print(tupelA[::-3])
print(tupelA[-2:-1:])
print(tupelA[-4:-2:])
#tupelA[0]='PythonHello'不能修改
print(type(tupelA[4]))
tupelA[4][0]=2637
print(tupelA)#元组中列表类型数据可修改
tupleB=(1,)
print(type(tupleB))#当元组只有一个数据项时,后面要加逗号
tupleC=tuple(range(10))#类型转换
print(tupleC)
print(tupleC.count(8))#可以统计元素出现次数
五、字典
定义:是键值对组成的集合,通常使用键来访问数据,效率非常高,支持对数据添加、修改、删除
特点:
不是序列类型,没有下标概念,是一种无序键值集合,是高级内置数据类型
用{}来表示字典对象,每个键值用逗号分开
键必须是不可变类型【元组,字符串】值可以任意类型
每个键必须唯一,如果存在重复的键,后者会覆盖前者
dictA={}
print(type(dictA))
dictA={'pro':'艺术','school':'北电'}
#添加字典数据
dictA['name']='李易峰'#key:value
print(dictA)
dictA['age']=30
dictA['pos']='歌手'
print(dictA)
print(len(dictA))#数据项长度
print(dictA['name'])#通过键获取值
dictA['name']='谢霆锋'#修改键对应值
dictA['school']='北大'
print(dictA)
print(dictA.keys())#获取所有键
print(dictA.values())#获取所有值
print(dictA.items())#获取所有键和值
for key,value in dictA.items():
print('%s==%s'%(key,value))
dictA.update({'age':32})#更新
dictA.update({'height':180})#增加
print(dictA)
#通过指定键删除操作
del dictA['name']
print(dictA)
dictA.pop('age')
print(dictA)
#如何排序
print(sorted(dictA.items(),key=lambda d:d[0]))#按key排序
print(sorted(dictA.items(),key=lambda d:d[1]))#按值排序