列表、集合、字典推導(dǎo)式快速生成列表

由輸出項,列表項,過濾項組成,過濾項為bool值可省略
[expr for itm in collection if condition] 列表常規(guī)推導(dǎo)
(expr for itm in collection if condition) 列表迭代推導(dǎo)
{expr for itm in collection if condition} 字典/集合推導(dǎo)

列表推導(dǎo)

num = [1, 4, -5, 10, -7, 2, 3, -1]
filtered_and_squared = [ x**2 for x in num if x > 0]
print filtered_and_squared

# [1, 16, 100, 4, 9]

由于列表推導(dǎo)時會將整個列表加載到內(nèi)存,對于比較大的對象請使用生成器,一次只加載一個列表元素到內(nèi)存。用法同上,只需要把方括號改成圓括號。使用for in來依次取出各元素

num = [1, 4, -5, 10, -7, 2, 3, -1]
new = ( x**2 for x in num if x > 0)
for i in new:
    print i
# 1, 16, 100, 4, 9

集合推導(dǎo)

li = [1,2,3,4,5,6,4,3,5,12]
tmp = {i * i for i in li}
# set([1, 36, 9, 144, 16, 25, 4])

字典推導(dǎo)

li = [1,2,3,4,5,6,4,3,5,12]
tmp = {i: i * i for i in li}
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 12: 144}

字典推導(dǎo)只是比集合推導(dǎo)多一個鍵處理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容