列表 集合和字典推導式

2021-10-06 14:22:50 字數 1079 閱讀 7088

列表推導式是python最受喜愛的特性之一。它允許使用者方便的從乙個集合過濾元素,形成列表,在傳遞引數的過程中還可以修改元素。形式如下:

[expr for val in collection if condition]
它等同於下面的for迴圈;

result = 

for val in collection:

if condition:

filter條件可以被忽略,只留下表示式就行。例如,給定乙個字串列表,我們可以過濾出長度在2及以下的字串,並將其轉換成大寫:

in [154]: strings = ['a', 'as', 'bat', 'car', 'dove', 'python']

in [155]: [x.upper() for x in strings if len(x) > 2]

out[155]: ['bat', 'car', 'dove', 'python']

用相似的方法,還可以推導集合和字典。字典的推導式如下所示:

dict_comp =
集合的推導式與列表很像,只不過用的是尖括號:

set_comp =
與列表推導式類似,集合與字典的推導也很方便,而且使**的讀寫都很容易。來看前面的字串列表。假如我們只想要字串的長度,用集合推導式的方法非常方便:

in [156]: unique_lengths = 

in [157]: unique_lengths

out[157]:

map函式可以進一步簡化:

in [158]: set(map(len, strings))

out[158]:

作為乙個字典推導式的例子,我們可以建立乙個字串的查詢對映表以確定它在列表中的位置:

out[160]:

Python 列表 集合 字典推導式

列表推導式 用乙個表示式建立乙個有規律的列表或控制乙個有規律列表。列表推導式又叫做列表生成式 原理 將for迴圈 包括其內部所有前置語句 都簡寫在乙個括號內 注意 列表推導式實現的時候,可以是for if,也可以是for for巢狀等 形式 字典推導式 快速合併列表為字典或提取字典中目標資料 注意 ...

python之列表推導式,字典推導式,集合推導式

列表推導式 表示式 for 變數 in 舊列表 或者 表示式 for 變數 in 舊列表 if 條件 names sc sfd sdfbgf dgnh b 過濾掉長度小於等於3的名字 print len name 3for name in names print name for name in n...

列表 字典 集合推導式用法介紹

coding utf 8 file 補充.py 描述 布林值,zip 隨機數 列表 字典 集合推導式 time 2020 5 28 18 23 author 崔 versions 1.0 1 bool型 假的值有 none 0 0.0 false 所有的空容器 空列表 空元組 空字典 空集合 空字串...