列表
列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都被分配一个数字作为索引,用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。
Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。
从数据结构角度看,Python的列表是一个可变长度的顺序存储结构,每一个位置存放的都是对象的指针。
比如,对于这个列表 alist = [1, “a”, [11,22], {“k1”:”v1”}],其在内存内的存储方式是这样的:
1. 创建方式
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。列表内的元素,可以是其它任意类型的数据,可多层嵌套列表,元素个数无限制。
>>> lis = [] # 创建一个空列表
>>> lis = [1, 2, 3]
>>> lis = [1, 'a', [11,22], {'k1':'v1'}]
>>> lis = [1, 2, [3, 4, 5]]
2. 访问列表内的元素
列表从0开始为它的每一个元素顺序创建下标索引,直到总长度减一。要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异常。所以,一定要记得最后一个元素的索引是len(list)-1。
>>> lis = ["a", "b", "c"]
>>> lis[0]
'a'
>>> lis[1]
'b'
>>> lis[2]
'c'
>>> lis[3]
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
lis[3]
IndexError: list index out of range
- 修改元素的值
直接对元素进行重新赋值。
>>> lis[0]
'a'
>>> lis[0] = "d"
>>> lis[0]
'd'
4. 删除元素
使用del语句或者remove(),pop()方法删除指定的元素。
>>> lis = ["a", "b", "c"]
>>> del lis[0]
>>> lis
['b', 'c']
>>> lis.remove("b")
>>> lis
['c']
>>> lis.pop()
'c'
>>> lis
[]
5. 列表的特殊操作
除了以上的常规操作,列表还有很多有用的其它操作。
6. 针对列表的常用函数
Python有很多内置函数,可以操作列表。
>>> s = [1, 4, 9, 16, 25]
>>> len(s)
5
>>> max(s)
25
>>> min(s)
1
>>> s = list((1, "a", "b", 2))
>>> s
[1, 'a', 'b', 2]
>>> max(s) # 不能混合不同类型进行最大最小求值
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
max(s)
TypeError: '>' not supported between instances of 'str' and 'int'
这些操作都不会修改列表本身,属于安全操作。max、min在Python3中,不能对不同类型的对象进行大小的比较了。