数据结构
参考菜鸟教程https://www.runoob.com/python3/python3-tutorial.html
把列表当作堆栈使用
用append()
方法实现入栈; 用pop()
方法实现出栈
stack=[2, 3, 4, 5]
stack.append(6) #[2, 3, 4, 5, 6]
stack.pop() #[2, 3, 4, 5]
列表推导式
类似数学中集合的描述法
L1 = [1, 3, 5]
L2 = [2, 4, 6]
[3*x for x in L1] #[3, 9, 15]
[[x, -x] for x in L1] #[[1, -1], [3, -3], [5, -5]]
[x**x for x in L1 if x>1] #[27, 3125]
[[x, y] for x in L1 for y in L2] #[[1, 2], [1, 4], [1, 6], [3, 2], [3, 4], [3, 6], [5, 2], [5, 4], [5, 6]]
嵌套列表
将4*3的矩阵转化为3*4的矩阵
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 1, 4]]
print([[row[i] for row in matrix] for i in range(3)])
遍历技巧
在字典中遍历, 可以使用items()
方法将关键字和对应的值同时解读出来
info = {'张三': '15', '李四': '18', '王五': '20'}
for x, y in info.items():
print(x, y)
#张三 15
#李四 18
#王五 20
在序列中遍历时, 索引位置和对应值可以使用enumerate()
同时得到
L = ['张三', '李四', '王五']
for x, y in enumerate(L):
print(x, y)
#0 张三
#1 李四
#2 王五
同时遍历两个或更多序列, 可以使用zip()
组合
L1 = [1, 2, 3]
L2 = [4, 5, 6, 7]
L3 = [8, 9]
for x, y, z in zip(L1, L2, L3):
print(x, y, z)
#1 4 8
#2 5 9
要按顺序遍历一个序列, 可以使用sorted()
函数返回一个有序的序列, 且不会修改原序列
L = [1, 2, 3, 6, 5, 4]
for i in sorted(L):
print(i, end=" ")
print()
for i in L:
print(i, end=" ")
#1 2 3 4 5 6
#1 2 3 6 5 4