其他关于Python的总结文章请访问:https://www.jianshu.com/nb/47435944
详解Python中的列表生成式
列表生成式是用来方便快速地生成一个list的方式,基本的写法有以下几种:
- [变量表达式
for
变量in
范围] - [变量表达式
for
变量in
范围if
条件] - [变量表达式
if
条件else
另一个变量表达式for
变量in
范围]
三个例子:
print([x * 2 for x in range(1, 11)])
print([x * x for x in range(1, 11) if x % 2 == 0])
print([x if x % 2 == 0 else -x for x in range(1, 11)])
------
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[4, 16, 36, 64, 100]
[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]
其中变量可以是一个或多个,比如:
- 一个变量:
print([x ** 2 for x in range(1, 11)]) ------ [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
- 两个变量:
d = {'x': 1, 'y': 2, 'z': 3} print([k + "=" + str(v) for k, v in d.items()]) ------ ['x=1', 'y=2', 'z=3']
总结:
- 如果
if
放在for
后边,则不能加else
,只起到筛选作用 - 如果
if
放在for
前边,可以加上else
来进行两种表达式的构建
网友评论