一:定义

python的列表对象是python中最通用的序列。列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。通过对偏移量进行赋值以及其他各种列表的方法进行调用,确实可以修改列表的大小。


二:列表的操作

1:求长度

>>> L=[123, 'dddd',12.5]
>>> len(L)
3

2:索引和切片

>>> L[0]
123
>>> L[:-1]
[123, 'dddd']
>>> L+['kai',12,'dd']
[123, 'dddd', 12.5, 'kai', 12, 'dd']
>>> L
[123, 'dddd', 12.5]
>>> 

3:增加列表

>>> L.append('jj')  #默认加在列表的最后
>>> L
[123, 'dddd', 12.5, 'jj']
>>> L.insert(1,'ww')
>>> L
[123, 'ww', 12.5]

4:减小列表

>>> L.pop(3)
'jj'
>>> L
[123, 'dddd', 12.5]
[123, 'ww', 12.5]
>>> L.remove('ww')
>>> L
>>> [123, 12.5]

5:排序,反转

>>> M=[11, 45, 56,23,78] 
>>> M.sort()   #也可以对字符排序
>>> M
[11, 23, 45, 56, 78]
>>> M.reverse()
>>> M
[78, 56, 45, 23, 11]

三:边界检查

列表虽然没有固定大小,但python不允许引用不存在的元素。超出列表末尾之外的索引总是会导致错误,对列表末尾范围之外赋值也是如此。

四:列表嵌套

>>> L=[[1,2,3],[4,5,6],[7,8,9]]
>>> L
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> L[1]
[4, 5, 6]
>>> L[1][2]
6

五:列表解析

列表解析源于集合的概念。它是一种通过对序列中的每一项运行一个表达式来创建一个新列表的方法,从左到右,每次一个。
1:提取矩阵的某一列

>>> l=[row[2] for row in L]
>>> l
[3, 6, 9]

2:提取矩阵的某一列并加一

>>> l=[row[1] +1 for row in L]
>>> l
[3, 6, 9]

3:提取矩阵的某一列为偶数的数字

>>> l=[row[1] for row in L if row[1]%2==0]
>>> l
[2, 8]

4:取对角线上的数

>>> diag=[L[i][i] for i in [0,1,2]]
>>> diag
[1, 5, 9]

5:

>>> doubles=[c * 2 for c in 'sap']
>>> doubles
['ss', 'aa', 'pp']

6:

>>> G=(sum(row) for row in L)
>>> next(G)
6
>>> next(G)
15
>>> next(G)
24
>>> list(map(sum,L))
[6, 15, 24]
>>> {sum(row) for row in L}
{24, 6, 15}
>>> {i : sum(L[i]) for i in range(3)}
{0: 6, 1: 15, 2: 24}