列表推导式、生成器表达式、字典推导式

列表推导式

  含义:通过一行代码生成列表,列表生成式性能高于列表操作。如果代码逻辑不复杂情况下可以优先使用列表生成式。

  • 提取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'} <class 'set'>
  • 方式二:

my_set = set(my_dict.keys())

 

posted @ 2019-02-28 11:38  脱离低级趣味  阅读(274)  评论(0编辑  收藏  举报