【python笔记】列表推导式
前言
- 列表推导式只有一个作用,那就是生成列表;
- 通过列表推导式生成列表使代码更简洁;
map/filter这类高级语法不一定快于列表推导式。
列表推导式示例
# 生成0 - 9的列表
list1 = [i for i in range(10)]
生成器表达式
列表推导只能生成列表,如果想生成其它类型的序列,那就需要使用生成器表达式。
生成器表达式的语法和列表推导差不多,只是把方括号换成了圆括号而已。
- 示例:使用生成器表达式生成元组
symbols = '@#$%^&*'
tuple1 = tuple(symbol for symbol in symbols)
# ('@', '#', '$', '%', '^', '&', '*')
- 示例:使用生成器表达式计算笛卡尔积
colors = ['black','white','green']
sizes = ['S','M','X','L']
for tshirt in (f"{color},{size}" for color in colors for size in sizes):
print(tshirt)
结果:
black,S
black,M
black,X
black,L
white,S
white,M
white,X
white,L
green,S
green,M
green,X
green,L