Python学习笔记基本数据结构之序列类型list tuple range用法分析
本文实例讲述了Python学习笔记基本数据结构之序列类型listtuplerange用法。分享给大家供大家参考,具体如下:
list和tuple
- list:列表,由[]标识;有序;可改变列表元素
- tuple:元组,由()标识;有序;不可改变元组元素(和list的主要区别)
list和tuple的创建:
print([])#空list print(["a",1,True])#元素类型不限 print([xforxinrange(0,6)])#列表推导式 print(list("a"),type(list("a")))#强制转化 print(())#空tuple print((1))#不是tuple print((1,))#单一元素tuple一定要加, print(("a",1,True))#元素类型不限 print(tuple("a"),type(tuple("a")))#强制转化
空listl=[]
list用一对方括号,用','隔开里面的元素 l=[a] l=["a",1,True] 元素类型不限
列表推导式,如:[xforxinrange(0,6)](下方会详细介绍range及列表推导式)
类型转换list()
空tuple t=()
tuple若只有一个元素时,注意表示为 t=(1,) 一定要有逗号
tuple用一对圆括号,用','隔开里面多个的元素 t=("a",1,True) 元素类型不限
类型转换tuple()
range
range可方便的生成一个等差的序列,有两种表示range(stop)、range(start,stop[,step]);通常用在for循环语句中
range(stop)表示0到stop(不包含stop)等差为1的数,如range(4)表示0123
range(start,stop[,step])表示从start到stop(不包含stop)等差为step的数;step缺省为1,可设置为负数
print(type(range(4)))#range本身就是一个type foriinrange(4): print(i)#0123 foriinrange(-1):#从0计数,无值 print(i) foriinrange(4,7):#456 print(i) foriinrange(2,7,2):#246 print(i) foriinrange(5,2,-1):#543 print(i)
序列操作
一般操作,不改变list本身
s=["a",1,True,["b"],2] print("a"ins)#判断元素存在于s print("a"notins)#判断元素不存在于s print("b"ins) print(1.0ins)#这边不判断intfloat类型不同 print("1"ins)#这边的1为字符串 a=[1,2] b=[2,1,0] print(a+b)#序列相加 print(a*3)#序列乘法 s=[0,1.0,2,3,4,5,6,7,8] print(s[0],s[2],s[3])#通过下标来取出对应的元素 print(type(s[0])) print(type(s[1])) print(s[2:4])#取出一段list print(s[2:7:2])#根据步长取出一段list print(len(s))#list长度,即包含几个元素 sum=0 foriinrange(0,len(s)):#使用for循环来取出list的每个元素 print(s[i]) sum+=i#赋值的简单表达式,相当于sum=sum+i print(sum)#总和 print(min(s),max(s))#取最小/最大;注意元素类型间若不可比较,会报错 s=[2,3,1,2,2,3] print(s.index(2))#查找对应元素第一次出现的下标 #print(s.index(4))#不存在该元素会报错 print(s.index(2,3))#从下标为3的开始找起 print(s.index(2,3,4))#从下标为3到下标4的阶段内找 print(s.count(2))#输出为2的元素的个数 print(s.count("2"))#找不到匹配元素,返回0
上方列出的操作方法对tuple也都适用,因为并不改变序列本身的元素,如
s=(2,3,1,2,2,3) print(s[2],s[2:4],len(s),s.count(2))#对tuple均适用
改变序列的操作:仅对list适用;若对tuple操作,会报错;clear()和copy()是Python3.3才新增的方法
list的增、删、改的操作实际都比较实用,需要熟练掌握
list元素更改
可对list不同的下标表示法做以下操作,一般list下标的操作仅作对单一元素的更改赋值,如s[0]=1;对多个元素的操作见下方示例(仅供参考)
s=[0,1,2,3] s[0]="1" print(s)#对list的某一元素赋另外的值,类型也跟随改变 s[4]=1#不可超过原list的长度,会报错 s[0:3]=[2,3,4]#可对一段元素赋另外的值 print(s) s[0:3]=["x","x"]#可缺少,元素个数也就相应的减少了 print(s) s[0:2]=["x","x","x","x"]#可增加,元素个数也就相应的减加了 print(s) s[0]=[0,0]#单个元素注意,相当于赋值,把序列赋予该元素 print(s) s[1:2]=[0,0] print(s) s=[0,1,2,3,4,5,6,7,8] s[1:8:2]=["x"]*4 #s[1:8:2]=["x"]*3#这种表示方式元素个数一定需要相同,不然会报错 print(s)
list元素删除
s=[0,1,2,3,4,5,6,7,8] dels[0:4]#删除对应的元素 print(s) s=[0,1,2,3,4,5,6,7,8] dels[1:8:2]#做删除 print(s) s=[0,1,2,3,4,5,6,7,8] s.pop(3) print(s.pop(3),s)#做删除,并且返回该元素的值 print(s.pop(),s)#默认删除最后一个 s=[2,"1",1.0,1,2,1] s.remove(1)#删除第一个值为1的元素 print(s) s.clear()#置空,Python3.3引入 print(s)
list元素增加
s=[0,1,2,3,4] s.append(5)#list最后加一个元素 print(s) s.extend([6,7])#list最后拼接序列 print(s) s.extend(range(3)) print(s) s.insert(1,["x"])#在1的位置插入["x"] print(s)
其他操作,reverse、copy等
s=[1,2,3] c=s.copy()#相当于c=s print(c) c.reverse() print(c) s=[2,3,1,4] s.sort()#排序 print(s) #s=["b",1,"a",True]#报错,必须是可比较的类型 s=["b","a"] s.sort() print(s)
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。