1.列表list()是序列式的数据类型,可通过下标或者切片来访问某一个或某一块连续的元素。
字符串只能由字符组成,且是不可变的。而列表是能保留任意数目的python对象的灵活的容器。
以下是列表的基本操作:
1.1如何创建列表类型数据并给它赋值
手写一个列表然后赋值给一个变量,列表由[]定义,当然可以用工厂方法list()
>>> a=[123,'abc']
>>> print a
[123, 'abc']
>>> a
[123, 'abc']
>>> list('123abc')
['1', '2', '3', 'a', 'b', 'c']
>>> print a
[123, 'abc']
>>> a
[123, 'abc']
>>> list('123abc')
['1', '2', '3', 'a', 'b', 'c']
1.2如何访问列表中的值
切片操作符[]和索引值
>>> a[0]
123
>>> a[0:2]
[123, 'abc']
>>> a[:2]
[123, 'abc']
>>> a[1:]
['abc']
>>> a[1][1]
'b'
123
>>> a[0:2]
[123, 'abc']
>>> a[:2]
[123, 'abc']
>>> a[1:]
['abc']
>>> a[1][1]
'b'
1.3如何更新列表
可给某个索引对应的值进行修改,或者用append()追加函数
>>> a[1]='b'
>>> a
[123, 'b']
>>> a.append("c")
>>> a
[123, 'b', 'c']
>>> a
[123, 'b']
>>> a.append("c")
>>> a
[123, 'b', 'c']
1.4如何删除列表中的元素
del语句,remove()方法
>>> del a[0]
>>> a
['b', 'c']
>>> a
['b', 'c']
>>> a.remove('c')
>>> a
['b']
>>> a
['b']
2.操作符
2.1标准类型操作符
=,<,>
>>> a=['abc',123]
>>> b=['xyz',789]
>>> c=['abc',123]
>>> a<b
True
>>> b<c
False
>>> b>c and a==c
True
>>> b=['xyz',789]
>>> c=['abc',123]
>>> a<b
True
>>> b<c
False
>>> b>c and a==c
True
2.2序列类型操作符
2.2.1切片([],[:])
切片返回的是一个对象或几个对象的集合,而不是字符串返回一个字符或一个子串
>>> num_list=[43,-1.23,-2,6.19e5]
>>> num_list[1]
-1.23
>>> num_list[1:]
[-1.23, -2, 619000.0]
>>> mixup_list=[4,[1,'x'],'a']
>>> mixup_list[1]
[1, 'x']
>>> num_list[1]
-1.23
>>> num_list[1:]
[-1.23, -2, 619000.0]
>>> mixup_list=[4,[1,'x'],'a']
>>> mixup_list[1]
[1, 'x']
跟多维数组类似的切片
>>> mixup_list[1][1]
'x'
'x'
2.2.2成员关系操作(in,not in)
>>> num_list=[43,-1.23,-2,6.19e5]
>>> -2 in num_list
True
True
>>> mixup_list=[4,[1,'x'],'a']
>>> 'x' in mixup_list[1]
True
True
2.2.3连接操作符(+),extend()函数
>>> num_list+mixup_list
[43, -1.23, -2, 619000.0, 4, [1, 'x'], 'a']
[43, -1.23, -2, 619000.0, 4, [1, 'x'], 'a']
连接操作是新建一个列表,而extend()函数的操作是将新列表添加到原有的列表里。
2.2.4重复操作符(*)
>>> num_list*2
[43, -1.23, -2, 619000.0, 43, -1.23, -2, 619000.0]
[43, -1.23, -2, 619000.0, 43, -1.23, -2, 619000.0]
2.3列表类型操作符,列表解析
>>> [i * 2 for i in [1,23]]
[2, 46]
[2, 46]
2.3内建函数
2.3.1标准类型函数
cmp()
cmp(a,b)
a<b -1
a=b 0
a>b 1
![](https://i-blog.csdnimg.cn/blog_migrate/82eccb5503b87c9156330188503600cb.png)
2.3.2序列类型函数
len()
max(),min()
sorted(),reversed()
>>> s=['they','stamp','them']
>>> for t in reversed(s):
print t
them
stamp
they
>>> sorted(s)
['stamp', 'them', 'they']
>>> for t in reversed(s):
print t
them
stamp
they
>>> sorted(s)
['stamp', 'them', 'they']
enumerate()和zip()
sum()
>>> a=[1,2,3]
>>> sum(a)
6
>>> sum(a)
6
list()和tuple()
2.3.3列表类型内建函数
若不考虑range()的话,python没有特定用于列表的内建函数。
![](https://i-blog.csdnimg.cn/blog_migrate/2309526189fd20bf501feccaaff5dded.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b22ae2b8b5a100039a38bb92edec7bb.png)
2.4列表的特殊特性
2.4.1堆栈
先进后出的数据结构
核心编程p170
2.4.2队列
先进先出的数据类型