python推導(dǎo)式pythonic必備

編程規(guī)范

今天公司新出了一套Python編程規(guī)范2.0,一直覺得自己寫代碼路子有點(diǎn)野惑朦,所以仔細(xì)的看了下笨鸡。
多數(shù)的內(nèi)容在網(wǎng)上都能搜到迫像,但有幾點(diǎn)需要說說

  • 讓我覺得羞愧的注釋率
    公司要求代碼注釋行蛀恩,占代碼總行數(shù)的20%敌土,而我經(jīng)常一套代碼寫下來注釋寥寥幾行镜硕。甚至在Linux下寫代碼的時(shí)候,由于系統(tǒng)語言包問題返干,pycharm沒辦法打中文兴枯,經(jīng)常出現(xiàn)通篇沒有一行注釋的情況...所謂,寫自己的代碼矩欠,讓別人無處維護(hù)也就不過如此财剖。但過了仗劍走天涯的年紀(jì)悠夯,要開始學(xué)著沉淀自己,不為別的峰伙,就為現(xiàn)在年輕的小伙子各個(gè)吃的好疗疟,長(zhǎng)得壯。幾個(gè)一起來瞳氓,打不過啊策彤,哈哈。
  • 規(guī)避單一循環(huán)
    這一點(diǎn)代碼要求是我欣然接受的匣摘,我這人懶店诗,能偷懶的偷懶,不能偷懶的想辦法也要偷懶音榜。這次的代碼規(guī)范要求庞瘸,單一輯的for循環(huán),通過python推導(dǎo)式完成赠叼,但嵌套for循環(huán)禁止使用擦囊。我默默的忽略后面這句,for循環(huán)推薦python推導(dǎo)式....
    為什么喜歡推導(dǎo)式嘴办?因?yàn)槭∈聝核渤 ⒖催@高端啊。最怕人說程序猿就是if ...else + for循環(huán)了....
python推導(dǎo)式

今天就給大家介紹下python推導(dǎo)式的使用

推導(dǎo)式(又稱解析式) 是Python的?種獨(dú)有特性涧郊。

推導(dǎo)式是可以從?個(gè)數(shù)據(jù)序列構(gòu)建另?個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體贯被。 共有三種推導(dǎo):

  • 列表(list)推導(dǎo)式
  • 字典(dict)推導(dǎo)式
  • 集合(set)推導(dǎo)式

列表推導(dǎo)式 (list comprehensions)

列表推導(dǎo)式(又稱列表解析式) 提供了?種簡(jiǎn)明扼要的方法來創(chuàng)建列表。

它的結(jié)構(gòu)是在一個(gè)中括號(hào)里包含一個(gè)表達(dá)式妆艘, 然后是一個(gè)for語句彤灶, 然后是0個(gè)或多個(gè)for或者if語句。 那個(gè)表達(dá)式可以是任意的批旺, 意思是你可以在列表中放入任意類型的對(duì)象幌陕。 返回結(jié)果將是?個(gè)新的列表, 在這個(gè)以if和for語句為上下?的表達(dá)式運(yùn)?完成之后產(chǎn)生

規(guī)范
variable = [x for x in list if something == 2]
這?是另外?個(gè)簡(jiǎn)明例子:

multiples = [i for i in range(30) if i % 3 is 0]
print(multiples)
# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

列表推導(dǎo)式在有些情況下超贊汽煮, 特別是當(dāng)你需要使?for循環(huán)來生成一個(gè)新列表苞轿。 舉個(gè)例子, 通常一般人會(huì)這樣做:

squared = []
for x in range(10):
    squared.append(x**2)

你可以使?列表推導(dǎo)式來簡(jiǎn)化它:
squared = [x**2 for x in range(10)]


集合推導(dǎo)式(set comprehensions)

至于集合推導(dǎo)式逗物,跟列表推導(dǎo)式大同小異搬卒,不過在去重方面是set的強(qiáng)項(xiàng)
舉個(gè)栗子:

squared = {x**2 for x in [1, 1, 2]}
print(squared)
# Output: {1, 4}

字典推導(dǎo)式(dict comprehensions)

字典推導(dǎo)式,使用的場(chǎng)景比較少翎卓,但是有一點(diǎn)是超級(jí)贊的契邀!

問題:遇到字典的鍵值對(duì)互換,你會(huì)怎么操作?

  1. 使用for循環(huán)失暴?
mydict={"a":1,"b":2,"c":3}
mydict_new={}
for key,val in mydict.items():
    mydict_new[val]=key
  1. 使用zip坯门?
mydict={"a":1,"b":2,"c":3}
newdict=dict(zip(mydict.values(),mydict.keys()))
  1. say no微饥,你應(yīng)該使用字典推導(dǎo)式!
mydict={"a":1,"b":2,"c":3}
newdict={v: k for k, v in some_dict.items()}
or
newdict=dict([val,key] for key,val in mydict.items())
The End

OK古戴,如果覺得這篇文章對(duì)你有幫助欠橘,歡迎將文章或我的微信公眾號(hào)【清風(fēng)Python】轉(zhuǎn)發(fā)分享給更多喜歡python的朋友們,謝謝现恼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肃续,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叉袍,更是在濱河造成了極大的恐慌始锚,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喳逛,死亡現(xiàn)場(chǎng)離奇詭異瞧捌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)润文,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門姐呐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人典蝌,你說我怎么就攤上這事曙砂。” “怎么了赠法?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)乔夯。 經(jīng)常有香客問我砖织,道長(zhǎng),這世上最難降的妖魔是什么末荐? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任侧纯,我火速辦了婚禮,結(jié)果婚禮上甲脏,老公的妹妹穿的比我還像新娘眶熬。我一直安慰自己,他們只是感情好块请,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布娜氏。 她就那樣靜靜地躺著,像睡著了一般墩新。 火紅的嫁衣襯著肌膚如雪贸弥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天海渊,我揣著相機(jī)與錄音绵疲,去河邊找鬼哲鸳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盔憨,可吹牛的內(nèi)容都是我干的徙菠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼郁岩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼婿奔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驯用,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤脸秽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蝴乔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體记餐,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年薇正,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了片酝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挖腰,死狀恐怖雕沿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猴仑,我是刑警寧澤审轮,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站辽俗,受9級(jí)特大地震影響疾渣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崖飘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一榴捡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朱浴,春花似錦吊圾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梁沧,卻和暖如春板丽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工埃碱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猖辫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓砚殿,卻偏偏與公主長(zhǎng)得像啃憎,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子似炎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容