列表生成式

一個(gè)例子:
計(jì)算列表中的每個(gè)元素的長(zhǎng)度,然后將長(zhǎng)度添加到元素內(nèi)容后面,生成一個(gè)新的列表

list_text = ['a','bb','ccc','a1']
list_new = [i + str(len(i)) for i in list_text]
print(list_new);

這是一個(gè)列表生成式的典型應(yīng)用鲁僚,本來對(duì)于列表中的每一個(gè)元素,如果用循環(huán)來實(shí)現(xiàn)這個(gè)功能,將會(huì)額外增加好多行代碼

我們可以這樣實(shí)現(xiàn)一個(gè)平方數(shù)表
squares = list(map(lambda x:x**2, range(10)))
也可以這樣實(shí)現(xiàn)
squares = [x**2 for x in range(10)]
顯然后一種方式更容易理解

列表生成式也可以寫的很復(fù)雜
[(x,y) for x in [1,2,3] for y in [3,1,4] if x != y]

實(shí)際上冰沙,列表生成式這個(gè)概念在python鐘已經(jīng)被泛化了用剛剛的方法侨艾,不僅可以生成列表,還可以生成dict和set類型的數(shù)據(jù)結(jié)構(gòu)

s = "hello world"
comp = {x for x in s}

上面用列表生成式的方法生成了一個(gè)集合類型拓挥,集合可以理解成只存儲(chǔ)key唠梨,沒有value,所以set是不會(huì)有重復(fù)值(因?yàn)閐ict類型的key不允許用重復(fù)的)

如果你想要一個(gè)key映射多個(gè)value侥啤,可以考慮value采用list類型

嚴(yán)格來說当叭,字典生成式的語法是這樣的

{key:value for(key, value) in iterable}
注意,這里有一個(gè)zip函數(shù)可以把可迭代對(duì)象作為參數(shù)盖灸,將對(duì)相對(duì)象對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組蚁鳖,然后返回又這些元組組成的列表

s = "hello world"
dict_comp = {k:v for (k,v) in zip(range(11), s)}
如果對(duì)zip函數(shù)不是很熟悉的話

可以看看下面的代碼輸出

s = "hello world"
for k, v in zip(range(9), s):
    print(k, v)

列表生成式的一些例子

指定目錄下查找指定后綴的所有文件

import os
def list_files_with_ext(path, ext):
    return [file for f in os.listdir(path) if f.endswith(ext)]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赁炎,隨后出現(xiàn)的幾起案子醉箕,更是在濱河造成了極大的恐慌,老刑警劉巖徙垫,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讥裤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡姻报,警方通過查閱死者的電腦和手機(jī)坞琴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逗抑,“玉大人剧辐,你說我怎么就攤上這事∮矢” “怎么了荧关?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)褂傀。 經(jīng)常有香客問我忍啤,道長(zhǎng),這世上最難降的妖魔是什么仙辟? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任同波,我火速辦了婚禮,結(jié)果婚禮上叠国,老公的妹妹穿的比我還像新娘未檩。我一直安慰自己,他們只是感情好粟焊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布冤狡。 她就那樣靜靜地躺著孙蒙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悲雳。 梳的紋絲不亂的頭發(fā)上挎峦,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音合瓢,去河邊找鬼坦胶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晴楔,可吹牛的內(nèi)容都是我干的顿苇。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼滥崩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岖圈!你這毒婦竟也來了讹语?” 一聲冷哼從身側(cè)響起钙皮,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎顽决,沒想到半個(gè)月后短条,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡才菠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年茸时,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赋访。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡可都,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚓耽,到底是詐尸還是另有隱情渠牲,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布步悠,位于F島的核電站签杈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鼎兽。R本人自食惡果不足惜答姥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谚咬。 院中可真熱鬧鹦付,春花似錦、人聲如沸择卦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至潘明,卻和暖如春行剂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钳降。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工厚宰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遂填。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓铲觉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吓坚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撵幽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361