小白學python窜骄,列表推導到zip()函數(shù),必須會的五種技巧

以下即五種實用的小技巧:

字符串運算

列表推導式

lambda 和 map()

單行條件語句

zip()

字符串運算

【ps:更多精彩案例視頻摆屯,基礎(chǔ)邻遏,進階,爬蟲虐骑,數(shù)據(jù)分析等學習資料加q群778463939免費獲取】

字符串本質(zhì)上也是一種元組准验,但是字符串有很多「運算」方式。?最直觀的是字符串的 + 和 * 運算廷没,它們分別表示重復和連接糊饱。

此外,如果希望獲得反向字符串颠黎,也可以直接使用 [::-1] 進行索引:


如果列表元素都是字符串另锋,那么我們可以快速地使用 join() 方法將所有元素憑借在一起:

如上我們使用 .join() 方法拼接列表元素,其中 『 』 表示連接方式為空格盏缤。?其實在自然語言處理中砰蠢,這個方法會經(jīng)常使用,例如我們將句子拆分為了字符唉铜,那么處理后的合并就需要使用 join() 了台舱。

列表推導式

如果你還不會使用列表推導式,那么快學起來吧。?正如本文作者所言竞惋,「當我第一次學到這種方式時柜去,我的整個世界都變了。?」列表推導式真的非常強大拆宛,它不僅在速度上比一般的方法快嗓奢,同時直觀性、可讀性都非常強浑厚。?如果你希望迭代列表做一些運算股耽,那么快使用它吧。

我們先定義一個簡單的函數(shù)钳幅,它會算變量的平方并加 5:

如果我們希望將該函數(shù)應用到列表中的奇數(shù)項物蝙,那么不采用列表推導式的情況下,我們一般會寫成以下形式:

但是現(xiàn)在我們有了列表推導式敢艰,那么上面代碼可以等價修改為:


上面的列表推導式可以進一步簡化诬乞,即不需要定義一個新函數(shù)。


Lambda 和 Map

Lambda 是一種匿名函數(shù)钠导,它看起來可能有一點奇怪震嫉,但是一旦你理解了它,那么他就會變得非常直觀與強大牡属。

一般而言票堵,Lambda 函數(shù)都比較小,它也不需要定義函數(shù)名湃望。?那么為什么需要匿名函數(shù)换衬??簡單而言,Lambda 最常執(zhí)行一些直觀的運算证芭,它并不需要標準的函數(shù)定義瞳浦,而且也不需要新的函數(shù)名再次調(diào)用。

還是拿上面的先平方再加 5 為例废士,前面我們是定義了一個標準的函數(shù)叫潦,def stupid_func(x),現(xiàn)在我們可以試試 Lambda 匿名函數(shù):


那么我們?yōu)槭裁匆蒙厦娴谋磉_式官硝??很大一部分原因在于矗蕊,當我們想執(zhí)行一些簡單運算時,可以不需要定義真實函數(shù)就能完成氢架。?例如排序列表元素傻咖,一種直觀的方法可以使用 sorted() 方法:


這只能默認從大到小或從小到大排序,但是借助 Lambda 表達式岖研,我們可以實現(xiàn)更自由的排序標準卿操。?如下所示我們希望根據(jù)最小的平方數(shù)對列表進行排序警检,其可以使用 Lambda 函數(shù)定義鍵,從而告訴 sorted() 方法該怎樣排序害淤。

上面的代碼非常優(yōu)雅扇雕,如果不用它們兩者,那么一般的表達需要寫成這樣:

單行條件語句

如果我們使用條件語句窥摄,那么最可能寫成下面這個樣子:

但其實我們也可以把所有條件都寫在 print 函數(shù)內(nèi)镶奉,即上面 7 行代碼可以等價寫成如下一行:

這樣看起來真的非常簡潔,如果你查看以前寫的代碼崭放,真的有很多都可以改成這種表達式哨苛。

zip()

前面在介紹 map() 函數(shù)時,我們舉了個例子將某個函數(shù)應用到平行的兩個列表币砂,而 zip() 函數(shù)可以更簡單地做到這一點移国。

如果我們有兩個列表,第一個列表包含了名道伟,第二個列表包含了姓。?使用 zip() 函數(shù)使碾,如下我們可以將它們拼接在一起蜜徽。

也就是說,zip 將兩個等長的列表變?yōu)榱艘粚σ粚Φ钠币。?(("Peter", "Jensen"), ("Christian", "Smith"), ("Klaus", "Nistrup"))拘鞋。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——本文完——

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矢门,隨后出現(xiàn)的幾起案子盆色,更是在濱河造成了極大的恐慌,老刑警劉巖祟剔,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隔躲,死亡現(xiàn)場離奇詭異,居然都是意外死亡物延,警方通過查閱死者的電腦和手機宣旱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叛薯,“玉大人浑吟,你說我怎么就攤上這事『牧铮” “怎么了组力?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抖拴。 經(jīng)常有香客問我燎字,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任轩触,我火速辦了婚禮寞酿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘脱柱。我一直安慰自己伐弹,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布榨为。 她就那樣靜靜地躺著惨好,像睡著了一般。 火紅的嫁衣襯著肌膚如雪随闺。 梳的紋絲不亂的頭發(fā)上日川,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音矩乐,去河邊找鬼龄句。 笑死,一個胖子當著我的面吹牛散罕,可吹牛的內(nèi)容都是我干的分歇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欧漱,長吁一口氣:“原來是場噩夢啊……” “哼职抡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起误甚,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤缚甩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后窑邦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體擅威,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年冈钦,在試婚紗的時候發(fā)現(xiàn)自己被綠了裕寨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡派继,死狀恐怖宾袜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驾窟,我是刑警寧澤庆猫,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站绅络,受9級特大地震影響月培,放射性物質(zhì)發(fā)生泄漏嘁字。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一杉畜、第九天 我趴在偏房一處隱蔽的房頂上張望纪蜒。 院中可真熱鬧,春花似錦此叠、人聲如沸纯续。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猬错。三九已至,卻和暖如春茸歧,著一層夾襖步出監(jiān)牢的瞬間倦炒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工软瞎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逢唤,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓涤浇,卻偏偏與公主長得像智玻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芙代,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

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