列表推導式、生成器表達式、字典推導式

列表推導式性能

  含義:經過一行代碼生成列表,列表生成式性能高於列表操做。若是代碼邏輯不復雜狀況下能夠優先使用列表生成式。generator

  • 提取1-21之間的偶數

  a = [x for x in range(21) if x%2==0]it

生成器表達式

  

  • a = (x for x in range(21) if x%2==0)  a爲一個生成器,注意不是tuple也不是set,而是generator,能夠用for循環對其進行遍歷。

生成器轉換成爲list能夠直接用list(generator)便可。for循環

字典推導式

  含義:經過一行代碼生成字典class

將字典的key、value置換過來。sed

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())生成器

相關文章
相關標籤/搜索