1. 程式人生 > >python-列表生成式(二)(應用例項)

python-列表生成式(二)(應用例項)

本文作者:黎智煊,叩丁狼高階講師。原創文章,轉載請註明出處。

上一節說到了列表生成式的原理和基本語法,現在就寫一些例項進行說明

我們可以對幾個生成列表的要求分別通過“不使用列表生成式”和“使用列表生成式”來實現,然後做個對比總結。

例項1:生成一個從3到10的數字列表

不使用列表生成式實現

list1 = range(3, 11)

使用列表生成式實現

list2 = [x for x in range(3, 11)]

例項2:生成一個2n+1的數字列表,n為從3到11的數字

不使用列表生成式實現

list3 = []
for n in range(3, 11):
    list3.append(2*n + 1)

使用列表生成式實現

list4 = [2*n + 1 for n in range(3, 11)]

例項3:過濾出一個指定的數字列表中值大於20的元素

L = [3, 7, 11, 14,19, 33, 26, 57, 99]

不使用列表生成式實現

list5 = []
for x in L:
    if x < 20:
        list5.append(x)

使用列表生成式實現

list6 = [x for x in L if x > 20]

例項4:計算兩個集合的全排列,並將結果作為儲存至一個新的列表中

L1 = ['香蕉', '蘋果', '橙子']
L2 = ['可樂', '牛奶']

不使用列表生成式實現

list7 = []
for x in L1:
    for y in L2:
        list7.append((x, y))

使用列表生成式實現

list8 = [(x, y) for x in L1 for y in L2]

例項5:將一個字典轉換成由一組元組組成的列表,元組的格式為(key, value)

D = {'Tom': 15, 'Jerry': 18, 'Peter': 13}

不使用列表生成式實現

list9 = []
for k, v in D.items():
    list9.append((k, v))

使用列表生成式實現

list10 = [(k, v) for k, v in D.items()]

想獲取更多技術乾貨,請前往叩丁狼官網:http://www.wolfcode.cn/all_article.html