列表推导式、生成器表达式、字典推导式
列表推导式
含义:通过一行代码生成列表,列表生成式性能高于列表操作。如果代码逻辑不复杂情况下可以优先使用列表生成式。
- 提取1-21之间的偶数
a = [x for x in range(21) if x%2==0]
生成器表达式
- a = (x for x in range(21) if x%2==0) a为一个生成器,注意不是tuple也不是set,而是generator,可以用for循环对其进行遍历。
生成器转换成为list可以直接用list(generator)即可。
字典推导式
含义:通过一行代码生成字典
将字典的key、value置换过来。
my_dict = {'frank': 22, 'bob': 24, 'tom': 28}
reversed_dict = {value:key for key, value in my_dict.items()}
print(reversed_dict)
输出结果:{22: 'frank', 24: 'bob', 28: 'tom'}
集合推导式
含义:一行的代码生成集合
- 方式一:
将字典中的key提取出来,放入一个set中
my_dict = {'frank': 22, 'bob': 24, 'tom': 28}
my_set = {key for key, value in my_dict.items()}
print(my_set, type(my_set))
输出结果:
{'tom', 'bob', 'frank'}
- 方式二:
my_set = set(my_dict.keys())