Python列表推导式:一行代码装X指南

Python基础 Apr 1, 2021

还用for循环?太out了!

squares = [] for i in range(10): squares.append(i*i)

然后你看到大佬的代码:squares = [i*i for i in range(10)]——脚气的一行。

语法糖

[expression for item in iterable if condition]

带条件:[x for x in range(20) if x%2==0] → 偶数列表

嵌套循环:[f"{i}x{j}={i*j}" for i in range(1,10) for j in range(1,10)] → 乘法表

三元:["偶数" if x%2==0 else "奇数" for x in range(10)]

警告:别写这种:[x for y in z for a in b if x.a>2 for (c,d) in e.items() if c!="wtf"]——三个月后你自己都看不懂。最多套两层。

Tags