列表基础
列表的值
截取字符
更改列表
append()
del()
截取与拼接
>>>squares = [1, 4, 9, 70, 25]
>>> squares += [36, 49, 64, 81, 100]
>>> squares
[1, 4, 9, 70, 25, 36, 49, 64, 81, 100]
>>>
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
函数与方法
函数 | 描述 |
---|---|
len(list) | 列表元素个数 |
max(list) | 最大值 |
min(list) | 最小值 |
list(seq) | 将元组转换为列表 |
方法 | 描述 |
---|---|
list.append(obj) | 末尾添加新的对象 |
list.count(obj) | 某个元素在列表中出现的次数 |
list.index(obj) | 列表中找出某个值第一个匹配的索引位置 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.pop([i]) | 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。 |
list.reverse() | 反向列表中元素 |
list.sort() | 对原列表进行排序 |
list.clear() | 清空列表 |
list.copy() | 复制列表 |
数据结构
列表—堆栈
最先进入的元素最后一个被释放(后进先出)
>>> stack = [3, 4, 5]
>>> stack.append(8)
>>> stack.append(7)
>>> stack
[3, 4, 5, 8, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 8]
>>> stack.pop()
8
>>> stack.pop()
5
>>> stack
[3, 4]
列表—堆栈
最先进入的元素最后一个被释放(后进先出)
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
列表—推导式
>>> vec = [2, 4, 6]
>>> [3*x for x in vec]
[6, 12, 18]
>>> [[x, x**2] for x in vec]
[[2, 4], [4, 16], [6, 36]]
>>> [3*x for x in vec if x > 3]
[12, 18]
>>> [3*x for x in vec if x < 2]
[]
>>> vec1 = [2, 4, 6]
>>> vec2 = [4, 3, -9]
>>> [x*y for x in vec1 for y in vec2]
[8, 6, -18, 16, 12, -36, 24, 18, -54]
>>> [x+y for x in vec1 for y in vec2]
[6, 5, -7, 8, 7, -5, 10, 9, -3]
>>> [vec1[i]*vec2[i] for i in range(len(vec1))]
[8, 12, -54]
列表—嵌套列表
>>> matrix = [
... [1, 2, 3, 4],
... [5, 6, 7, 8],
... [9, 10, 11, 12],
... ]
>>> [[row[i] for row in matrix] for i in range(4)]
>>>[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
使用以下方法来实现
>>> transposed = []
>>> for i in range(4):
... transposed.append([row[i] for row in matrix])
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
或者方法
>>> transposed = []
>>> for i in range(4):
... # the following 3 lines implement the nested listcomp
transposed_row = []
for row in matrix:
transposed_row.append(row[i])
transposed.append(transposed_row)
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
列表—del
它是根据索引(元素所在位置)来删除
>>> str=[1,2,3,4,5,2,6]
>>> del str[1]
>>> str
>>> [1, 3, 4, 5, 2, 6]
删除指定范围内的值
>>> str=[0,1,2,3,4,5,6]
>>> del str[2:4] #删除从第2个元素开始,到第4个为止的元素(但是不包括尾部元素)
>>> str
>>>[0, 1, 4, 5, 6]
也可以删除整个数据对象(列表、集合等)