# 1. 列表推导式
print('*'*10, '列表推导式', '*'*10)
# 使用[]生成list
multiples = [i for i in range(30) if i % 3 is 0]
print(multiples) # [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
# 使用()生成generator
multiples = (i for i in range(30) if i % 3 is 0)
print(type(multiples)) # <class 'generator'>
# 2.字典推导式
print('*'*10, '字典推导式', '*'*10)
dic_num = {'一': 1, '二': 2, '三': 3, '四': 4}
d = {dic_num.get(k, 0) for k in dic_num.keys() if k == '四'}
print(d)
kv = {v: k for k, v in dic_num.items()}
print(kv)
# 3.集合推导式
print('*'*10, '集合推导式', '*'*10)
squared = {x**2 for x in [1, 1, 2]}
print(squared)
print(type(squared))
结果:
********** 列表推导式 **********
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
<class 'generator'>
********** 字典推导式 **********
{4}
{1: '一', 2: '二', 3: '三', 4: '四'}
********** 集合推导式 **********
{1, 4}
<class 'set'>