什么是列表?
列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。
列表的介绍
一、更新列表
1.元素赋值
>>> a=[1,3,4,5] >>> a[1]=10 #改变a中第二个值为10 >>> a [1, 10, 4, 5]
2.增加元素
>>> a=[1,10,4,5] >>> a.append(6) #用法:list.append(obj) >>> a [1, 10, 4, 5, 6]
3.删除元素
>>> a=[1,10,4,5,6] >>> del a[2] #删除第三个元素 >>> a [1, 10, 5, 6]
4.分片赋值
>>> b=list('abc') #list函数将字符串转化为列表 >>> b ['a', 'b', 'c'] >>> b[1:1]='d' #使用分片赋值增加元素 >>> b ['a', 'd', 'b', 'c'] >>> b[1:2]='h' #使用分片赋值修改元素 >>> b ['a', 'h', 'b', 'c'] >>> b[2:3]='' #使用分片赋值删除元素 >>> b ['a', 'h', 'c']
二、列表方法
1.统计元素个数 count
用法:list.count(obj)
>>> a=list('hello,world') >>> a.count('l') 3
2.在列表末尾追加另一个序列 extend
用法:list.extend(seq)
>>> a=['hello'] >>> b=['world'] >>> a.extend(b) >>> a
['hello', 'world']
注:可用分片赋值实现同等效果>>> a[len(a):]=b
与连接符号 +的区别
>>> a=['hello'] >>> b=['world'] >>> a+b ['hello', 'world'] >>> a #extend已将a的值改变 ['hello']
3.查找第一个匹配的元素index
用法:list.index(obj)
>>> a=['hello', 'world'] >>> a.index('hello') 0
4.插入 insert
用法 list.insert(index,obj)
>>> a=['hello', 'world'] >>> a.insert(0,'goodmoring') #插在0的位置上 >>> a ['goodmoring', 'hello', 'world']
5.移除元素 pop (注:唯一一个技能修改元素又能返 回元素值的方法)
用法:list.pop(obj=list[-1])
>>> x=[1,2,3] >>> x.pop() #不加参数,删除最后一个值,并返回元素值 3 >>> print(x) [1, 2] >>> y=[1,2,3] >>> y.pop(1) #添加参数1,删除编号为1的元素值 2 >>> print(y) [1, 3]
6.移除列表中第一个匹配项 remove
用法:list.remove(obj)
>>> x=[1,2,3,2] >>> x.remove(2) >>> print(x) [1, 3, 2] #只删除第一个匹配值2
7.反向列表中的元素 reverse
用法:list.reverse()
>>> x=[1,2,3] >>> x.reverse() >>> print(x) [3, 2, 1] #顺序取反
8.排序 sort
用法:list.sort(func) func为可选参数
>>> x=[4,7,2,5] >>> y=x[:] #此处与y=x的区别:y=x指向的是同一个列表,若不分片赋予,则x同样被排序 >>> y.sort() >>> print(y) [2, 4, 5, 7] >>> print(x) [4, 7, 2, 5]
同样的操作的方法可使用sorted
用法:sorted(list)
>>> x=[4,7,2,5] >>> y=sorted(x) >>> print(x) [4, 7, 2, 5] >>> print(y) [2, 4, 5, 7]
sort可选参数有两个,即key和reverse
>>> field=['study','python','is','happy'] >>> field.sort(key=len) #按照长度进行排序 >>> field ['is', 'study', 'happy', 'python'] >>> field.sort(key=len,reverse=True) #按照长度进行反向排序 >>> field ['python', 'study', 'happy', 'is']
9.清空列表 clear
用法:list.clear
>>> field ['python', 'study', 'happy', 'is'] >>> field.clear() >>> field []
10.复制列表 copy ,类似于a[:]
用法:list.copy
>>> x=[1,2,3] >>> y=x.copy() >>> y [1, 2, 3]
三、元组
元组与列表类似,但是元组的元素不能修改
1.创建元组:用逗号分隔一些值,则自动创建元组
>>> 1,2,3 (1, 2, 3) >>> 1, (1,) #逗号很重要,没有逗号是创建不了元组的 >>> 1 1
使用tuple函数创建元组
>>> x=[1,2,3] >>> tuple(x) #可以将列表改成元组 (1, 2, 3)
2.元组基本操作
(1)访问元组
>>> x=(1,2,3,4) >>> x[1] 2 >>> x[2:] (3, 4)
(2)连接组合元组
>>> x=(1,2,3,4) >>> y=(5,6) >>> x+y (1, 2, 3, 4, 5, 6)
(3)删除元组
>>> y=(5,6) >>> del y >>> y #此时元组已不存在 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'y' is not defined