python-列表生成式(二)(應用例項)
阿新 • • 發佈:2018-12-08
本文作者:黎智煊,叩丁狼高階講師。原創文章,轉載請註明出處。
上一節說到了列表生成式的原理和基本語法,現在就寫一些例項進行說明
我們可以對幾個生成列表的要求分別通過“不使用列表生成式”和“使用列表生成式”來實現,然後做個對比總結。
例項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