Python3学习笔记(五):列表和元组
一、列表
列表是可变的--可以改变列表的内容
list函数可以把各种类型的序列拆分列表
>>> list('Hello') ['H', 'e', 'l', 'l', 'o']
二、列表的基本操作
1、改变列表:元素赋值
利用索引给列表中的元素赋值
>>> x=[1,2,3,4] >>> x[2]=18 >>> x [1, 2, 18, 4] >>> x[6]=20 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> x[6]=20 IndexError: list assignment index out of range
不能为一个位置不存在的元素赋值
2、删除元素
从列表中删除元素,可以使用del语句来实现
>>> names=['Alice','Beth','Cecil','Dee-Dee','Earl'] >>> del names[2] >>> names ['Alice', 'Beth', 'Dee-Dee', 'Earl']
3、分片赋值
>>> name=list('Perl') >>> name ['P', 'e', 'r', 'l'] >>> name[2:]=list('ar') >>> name ['P', 'e', 'a', 'r']
可以使用与原序列不等长的序列将分片替换:
>>> name=list('Perl') >>> name ['P', 'e', 'r', 'l'] >>> name[1:]=list('ython') >>> name ['P', 'y', 't', 'h', 'o', 'n']
还可以不需要替换任何原有元素的情况下插入新的元素:
>>> numbers=[1,5] >>> numbers[1:1]=[2,3,4] >>> numbers [1, 2, 3, 4, 5]
通过分片赋值来删除元素:
>>> numbers=[1,2,3,4,5] >>> numbers[1:4]=[] >>> numbers [1, 5]
三、列表方法
1、append
用于在列表末尾追加新的对象:
>>> abc=[1,2,3] >>> abc.append(4) >>> abc [1, 2, 3, 4]
2、count
统计某个元素在列表中出现的次数
>>> ['to','be','or','not','to','be'].count('to') 2 >>> x=[[1,2],1,1,[2,1,[1,2]]] >>> x.count(1) 2 >>> x.count([1,2]) 1
3、extend
在列表的末尾一次性追加另一个序列中的多个值,用新列表扩展原有列表
>>> a=[1,2,3] >>> b=[4,5,6] >>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6]
4、index
用于从列表中找出某个值第一个匹配项的索引值
>>> knights=['We','are','the','knights','who','say','ni'] >>> knights.index('who') 4 >>> knights[4] 'who'
5、insert
用于将对象插入到列表中
>>> numbers=[1,2,3,5,6,7] >>> numbers.insert(3,'four') >>> numbers [1, 2, 3, 'four', 5, 6, 7]
6、pop
移除列表中的一个元素(默认是最后一个),并且返回该元素的值
>>> x=[1,2,3] >>> x.pop() 3 >>> x [1, 2] >>> x.pop(0) 1 >>> x [2]
7、remove
移除列表中某个值的第一个匹配项
>>> x=['to','be','or','not','to','be'] >>> x.remove('be') >>> x ['to', 'or', 'not', 'to', 'be']
8、reverse
将列表中的元素反向存放
>>> x=[1,2,3] >>> x.reverse() >>> x [3, 2, 1]
9、sort
在原位置对列表进行排序,“在原位置排序”意味着改变了原来的列表,让其中的元素按一定顺序排序
>>> x=[4,6,2,1,7,9] >>> x.sort() >>> x [1, 2, 4, 6, 7, 9]
四、元组:不可变序列
元组与列表一样,也是一种序列。唯一的不同是元组不能改变。创建元组的语法很简单:如果你用逗号分割了一些值,那么你就自动创建了元组。
>>> 1,2,3 (1, 2, 3) >>> (1,2,3) # 用括号表示元组 (1, 2, 3) >>> () # 空元组 ()
如何实现包含一个值的元组呢?方法有点奇特----必须加逗号,即使只有一个值:
>>> 42 42 >>> 42, (42,) >>> (42,) (42,) >>> 3*(40+2) 126 >>> 3*(40+2,) (42, 42, 42)
tuple函数
tuple函数的功能与list函数基本上一样:以一个序列作为参数并把它转换为元组。
>>> tuple([1,2,3]) (1, 2, 3) >>> tuple('abc') ('a', 'b', 'c') >>> tuple((1,2,3)) (1, 2, 3)