③Python列表与元组
列表List
1. 列表是什么?
列表是Python的内置类型,是一种有序集合,可以随时添加和删除其中的元素。
2. 列表定义
>>>classmates=['Michael','Bob','Tracy']
>>>list=[1,2,3,4,5]
>>>list1=['Hello',1,TRUE,3.1415926]#列表元素类型可以不相同
>>>list2=['']
3. 访问列表的值
>>>print(classmates[1])
>>>print(list[:2])#列表切片
>>>print(list2[1:3])
4. 更新列表
list.append('append')
list[2]=6
5. 删除列表元素
del list[2]
6. Python列表脚本操作符
Python表达式 | 结果 | 描述 |
---|---|---|
len(list) | 6 | 长度 |
[1,2,3]+[4,5,6] | [1,2,3,4,5,6] | 组合 |
[‘Hi!’]*4 | [‘Hi!’,‘Hi!’,‘Hi!’,‘Hi!’] | 重复 |
3 in [1,2,3] | True | 元素是否存在于列表中 |
for x in [1,2,3]: print(x) | 1 2 3 | 迭代 |
7. Python列表函数&方法
序号 | 函数 |
---|---|
1 | len(list)#列表长度 |
2 | max(list)#列表最大值 |
3 | min(list)#列表最小值 |
4 | list(tuple)#将元组转换为列表 |
8. 列表方法
方法 | 解释 |
---|---|
list.append(obj) | 在列表末尾添加新对象 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值 |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index,obj) | 将对象插入列表 |
list.pop() | 移除列表中的一个元素(默认最后一个元素),并返回该元素的值 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反向列表中元素 |
list.sort(cmp=None,key=None,reverse=False) | 对原列表进行排序 |
元组Tuple
1. 什么是元组
元组是另一种有序序列,tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。其他操作同列表基本相似。
2. 元组的定义
t=(1,)#定义只有一个元素的元组
t=(1,2,3,4)
3. 元组的一个陷阱
首先,很清楚的一点是tuple是不可修改的,但是当元组中嵌套列表时确实一种特例
t=('a','b',['A','B'])
t[2][0]='X'
t[2][1]='Y'
此时t中的A
和B
变成了X
和Y
,关于这种变化的原因是,python中的变量与实际值是通过指针联系起来的,这样的话修改的只是列表中的值,但是元组中指向列表的指针值并没有发生变化,元组不可修改的基本原则还是满足的。
详细说明如下:
-
首先看定义时tuple中的3个元素
-
将
A
,B
修改成X
,Y
之后,tuple变为表面上看,tuple的元素确实变化了,但其实变的不是tuple的元素,而是list的元素,tuple一开始指向的list并灭有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向
a
,就不能改成指向b
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!