Python Trick

列表推导式

语法:

  • 变量名 = [表达式 for 变量 in 列表 for 变量 in  xxx]
  • 变量名 = [表达式 for 变量 in 列表 if 条件]

 

快速创建一个包含元素1-10的列表

list1 = [i for i in range(1, 11)]
print(list1)

运行结果:

[1,2,3,4,5,6,7,8,9,10]

快速创建一个包含1-10之间所有偶数的列表

list1 = [i for i in range(1, 11) if i % 2 == 0]
print(list1)
 

运行结果:

[2, 4, 6, 8, 10]

  

现在有一列表 lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ,求出 1/4/7 和 1/5/9元素,思考如何取出

# 使用列表推导式:
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
lst1 = [lst[i][0] for i in range(len(lst))]
print(lst1)
lst2 = [lst[i][i] for i in range(len(lst))]
print(lst2)

 运行结果:

[1, 4, 7]
[1, 5, 9]

map函数用法

当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:

map(None,[2, 4, 6], [3, 2, 1])
结果如下:
[(2,3), (4, 2), (6, 1)]

将字符串转换为list:

map(int, '1234')
结果如下:
[1, 2, 3, 4]

提取字典中的key,并将结果放在一个list中:

map(int, {1:2, 2:3, 3:4})
结果如下:
[1, 2, 3]
posted @ 2022-01-18 23:21  Bear_Guo  阅读(27)  评论(0编辑  收藏  举报