列表是 Python 最具灵活性的有序集合对象类型。与字符串不同,列表是可变对象。可以通过指定的偏移和分片、列表调用、删除语句等方法来实现。
列表的特点如下:
常见列表操作:
- L=[] #创建空列表
- L=[0,1,2,3] #索引0-3
- L=['abc',['def','ghi']] #嵌套子列表
- L=list('spam')
- L=list(range(-4,4)) #[-4, -3, -2, -1, 0, 1, 2, 3]
- L[i]
- L[i][j]
- L[i:j]
- len(L)
合并操作,"+" 号两边类型必须相同,否则会报错。
- >>>L=[0,1,2,3]
- >>>L2=[2,3,4,5,6]
- >>>L + L2
- [0, 1, 2, 3, 2, 3, 4, 5, 6]
- >>>str([1,2]) + "34"
- '[1,2]34'
- >>>[1,2] + list("34")
列表迭代和解析:
- >>>L = [x**2 for x in range(5)] #列表解析
- >>>L
- [0, 1, 4, 9, 16
这个表达式功能等同于手动构建一个 for 循环创建列表,但是列表解析的编码更简单,且运行起来更快。
- >>>res = []
- >>>for c in 'spam'
- >>>res.append(c*4)
- >>>res
- ['ssss', 'pppp', 'aaaa', 'mmmm']
用 map 函数创建新的列表:
- >>>list(map(abs,[-1, -2, -4, 0, 3]))
- [1, 2, 4, 0, 3]
list 的分片,要么第一个序号是 0,要么最后一个序号是 0:
- >>>L=['spam', 'ham', 'turkey']
- >>>L[2]
- 'turkey'
- >>>L[-2]
- 'spam'
- >>>L[1:]
- ['ham', 'turkey']
- >>>L[:-1]
- ['spam', 'ham']
二维数组:
- >>>matrix = [[1,2,3], [4,5,6], [7,8,9]]
- >>>matrix[1]
- [4,5,6]
- >>>matrix[2][2]
- 9
原处修改列表:
- >>>L=['spam', 'ham', 'eggs']
- >>>L[1]='fish' #单个赋值
- >>>L
- ['spam', 'fish', 'eggs']
- >>>L[0:2]=['eat', 'more'] #分片赋值
- >>>L
- ['eat', 'more', 'eggs']
- >>>L.append('please')
- >>>L
- ['eat', 'more', 'eggs', 'please']
- >>>L.sort() #会原地修改L
- >>>L
- ['eat', 'eggs', 'more', 'please']
注:L.append('please') 和 L+['please'] 结果类似,但不同的是前者会原地修改 L,而后者会生成新的列表。
Python 学习:列表 (list)
来源: http://www.bubuko.com/infodetail-2051006.html