1.序列简介
所谓序列,是一种可以包含多项数据的数据结构,序列包含的多个数据按照顺序排列,可以通过索引进行访问。
1.1python的序列Python中应用到的序列有列表(list)、元祖(tuple)和字典(dict)。列表中的元素是可变的,而元祖中的元素是不可变的。
1.创建列表和元祖使用方括号创建列表,使用圆括号创建元祖。
#使用方括号定义列表my_list=[crazy,handsome,smart]#使用圆括号定义元祖my_tuple=[crazy,handsome,smart]
.列表和元组的通用方法
.1通过索引访问元素
索引是访问序列元素最为朴素的方法,值得注意的是在python中由于元组中的元素是不可变的,因此通过索引访问元组的元素时只可以使用它的值,但是不能重新赋值。
a_tuple=(hello,你好)#访问元组第一个元素print(a_tuple)#访问第二个元素print(a_tuple[1])#访问倒数第一个元素print(a_tuple[-1]).子序列所谓子序列即访问列表或元组中指定的一段元素。
[start:end:step]#其中start表示起始位置(包含),end表示结束位置(不包含),step表示步长start和end的数值可正可负,当数值为负数时。代表从倒数的位置开始。
a_tuple=(1,,3,4,5,6,7,8,9)#访问第个元素到第4(不包含)个元素print(a_tuple[1:3])#输出,3#访问倒数第3个到倒数第1个(不包含)元素print(a_tuple[-3:-1])#输出7,8#访问第三个到第九个(不包含)元素,间隔为print(a_tuple[3:9:]).3加法列表和元祖支持加法运算,加法的和就是两个列表或元组所包含的元素的和,列表只能和列表相加,元组只能和元组相加。
#下面演示两个元组相加a_tuple=(1,,3)b_tuple=(4,5,6)c_tuple=a_tuple+b_tupleprint(c_tuple)#输出1,,3,4,5,6#接下来演示列表相加a_list=[1,,3]b_list=[4,5,6]c_list=a_list+b_listprint(c_list)#输出1,,3,4,5,6.4乘法列表和元组可以和整数执行乘法运算,相当于把他们包含的元素重复整数遍。
a_tuple=(1,)b_tuple=a_tuple*3print(b_tuple)#输出1,,1,,1,.5in运算符列表和元组可以使用in运算符来判断某个元素是否在其中。
a_tuple=(a,c,c)print(aina_tuple)#输出True.6长度、最大值和最小值列表和元组可以使用len()、max()、min()函数进行相关操作。序列封包和序列解包所谓封包指,可以将多个值赋给一个变量,python会自动将多个值封装为元组。解包是指将序列直接赋值给多个变量,序列中的各个元素会被依次赋值给每个变量。
#封包vals=10,0,30print(vals)#输出10,0,30print(type(vals))#输出classtuplea_tuple=tuple(range(1,10,))#序列解包a,b,c,d,e=a_tupleprint(a,b,c,d,e)#输出1,3,5,7,9
python允许在左边被赋值的变量之前添加*,那么该变量就变成一个列表,可以保存多个元素。
first,*middle,last=range(10)print(first)#0print(middle)#1,,3,4,5,6,7,8print(last)#9
3.使用列表元组和列表的区别在于,元组中的元素是不可改变的。因此可以认为列表是增强版的元组。3.1创建列表对于列表来说除了使用括号创建列表之外,还可以使用list()函数来创建。(python也为元组提供了tuple()构造函数来讲列表和区间转换为元组)
a_tuple=(hello,every,one)#将元组转换为列表a_list=list(a_tuple)#将区间转换为列表a_range=range(1,6)b_list=list(a_range)c_list=list(range(1,6,))3.增加列表元素列表可以使用append()方法将传入的参数添加到列表的最后面,append()方法可以接收单个值,也可以接收一个元组、列表等,此时只是把元组和列表当成单个元素,在列表中通过append方法加入元组或列表,会在加入的列表中形成嵌套。
a_list=[1,,3]#追加一个元素a_list.append(4)print(a_list)#1,,3,4a_tuple=(5,6,7)a_list.append(a_tuple)print(a_lsit)#1,,3,4,(5,6,7)#追加的a_tuple被整个视为一个元素如果向列表追加一个列表不希望被视为一个元素,而是添加列表中的元素,则可以使用extend()方法。
b_list=[,3,4]b_list.extend((5,6,7))print(b_list)#1,,3,4,5,6,7还可以使用insert()方法在列表中间插入元素。
c_list=range(1,6)#在索引3处插入字符串c_list.insert(3,crazy)print(c_lsit)#1,,3,crazy,4,5c_list.insert(3,tuple(crazy))print(c_list)#1,,3,(c,r,a,z,y),crazy,4,53.3删除列表元素python中提供了3种删除列表元素的方法。
del:该方法可以删除列表中指定索引的元素,还可以用来删除python变量。
a_list=[1,,3,4,5]dela_lsit[]print(a_list)#输出1,,4,5dela_list[1:3]print(a_list)#输出1,5name=crazyprint(name)#crazydelnameprint(name)#NameError
使用remove()方法删除元素,remove方法可以根据内容找到首先符合的元素进行删除。
还可以使用clear()方法,清空列表中的元素。
c_list=[0,crazyit,30,-4,crazyit,3.4]#删除第一次找到的30c_list.remove(30)print(c_list)#输出0,‘crazyit’,-4,crazyit,3.4c_list.clear()print(c_list)#[]3.4修改列表元素
.4,crazyit,3]#对第三个元素赋值a_list[]=fkit#对倒数第二个元素赋值a_list[-]=#可以使用slice对列表赋值b_list=list(range(1,5))print(b_list)#输出1,,3,4b_list[1:3]=[a,b]print(b_list)#输出1,a,b,4#对列表中的空slice赋值,实现对列表插入元素b_list[3:3]=[x,y]print(b_list)#输出1,a,x,y,b,4#对列表使用slice赋值不能使用单个值,如果使用字符串赋值python会把字符串当成序列处理b_list[1:3]=charlieprint(b_list)#1,c,h,a,r,l,i,e#在使用slice语法赋值时也可指定step参数,如果指定了step参数,要求赋值的列表个数与所替换的列表元素个数相等。c_list=list(range(1,10))#指定step为,被赋值的元素有4个,因此用于赋值的元素必须有四个元素。c_list[:9:]=[a,b,c,d]print(c_list)#输出1,,a,4,b,6,c,8,d
3.5列表的其他使用方法
count():用于统计列表中某个元素出现的次数
index():判断某个元素出现的位置
pop():实现元素出栈操作,使用append()实现入栈
reverse():将列表中的元素方向存储
sort():用于对列表元素排序,sort可以按照参数名的方式传入key和reverse两个参数。
b_list=[python,swift,ruby,Go,Kotlin,Erlang]b_list.sort(key=len,reverse=true)#使用len()函数对集合元素生成比较大小的键
4.使用字典4.1创建字典程序可以使用花括号或dict()函数来创建字典,字典的key值需要是不可变类型的。
scores={语文:89,数学:9,英语:93}empty_dict={}#创建了一个空的字典
使用dict()函数创建字典时,可以传入多个列表或元组参数作为key-value对,每个列表或元组都会被当成一个key-value对,因此这些列表或者元组都只能包含两个元素。
vegetables=[(celery,1.58),(brocoli,1.9),(lecture,.19)]dict=dict(vegetables)dict11=dict(me=7,you=3)#实现你三我七4.字典的基本用法
scores={语文:89}#通过key访问valueprint(scores[语文])#添加一个key-valuescores[数学]=93#使用del删除key-valuedelscores[语文]#判断字典是否包含指定的Keyprint(语文inscores)#true
4.3字典的常用方法
clear():清空字典中的key-value
get():根据key获取value
update():如果包含已有的key-value对,进行更新
items():获取所有的键值对
keys():获取所有的key
values():获取所有的value
setdefault():用户根据key获取value,如果key不存在设置默认值。
4.4使用字典格式化字符串
#在字符串模板中使用Keytemp=书名是:%(name)s,价格是:%(price).f,出版社是:%(publish)sbook={name:疯狂python讲义,price:88.9,publish:电子社}print(temp%book)
文章创作CSDN同步链接: