一行流

2023-02-05

if

1
s_dict = {"num": 0}
2
# 判断字典指定键如果存在则返回,如果存在但为0 返回 42,如果不存在也返回 42
3
s_dict.get("num", 42) if s_dict.get("num", 42) else 42
4
# 更好的实现
5
s_dict.get("num") or 42

单行 for 循环

列表推导式

1
# 语法
2
[x*2 for x in mylist]

单行 for 循环 + if

1
[x*2 for x in mylist if x%2 == 1]

字典推导式

1
mydict = {"foo": 42, "bar": 13}
2
{key: value * 10 for key, value in mydict.items() if key == "foo"}
3
# 返回 {'foo': 420}

集合推导式

1
myset = {1, 2, 4, 8, 42, 42}
2
{n for n in myset if n > 4}
3
# 返回: {8, 42}