Python教程:17個(gè)冷門但實(shí)用的小技巧

編者按:Python是機(jī)器學(xué)習(xí)的主流語(yǔ)言橡淆,沒(méi)有之一召噩。今年5月,它首次在PYPL排行榜上超越JAVA明垢,成為全球第一大編程語(yǔ)言蚣常。而一個(gè)月后,Stack Overflow也分享了最新的編程語(yǔ)言瀏覽量統(tǒng)計(jì)數(shù)字痊银,結(jié)果顯示抵蚊,Python的月活歷史性地超越了Java和JavaScript,真正問(wèn)鼎榜首。

“人生苦短贞绳,我選Python”谷醉。那么,你真的掌握了Python嗎冈闭?


1. 交換變量

有時(shí)候俱尼,當(dāng)我們要交換兩個(gè)變量的值時(shí),一種常規(guī)的方法是創(chuàng)建一個(gè)臨時(shí)變量萎攒,然后用它來(lái)進(jìn)行交換遇八。

比如:

但在Python中,其實(shí)我們有一種更簡(jiǎn)潔的寫法:

2. 將list中的所有元素轉(zhuǎn)為單個(gè)字符串

列表和字符串是Python中最常見(jiàn)的數(shù)據(jù)類型耍休,它們會(huì)遇到互相轉(zhuǎn)換的需要刃永。那么,我們?cè)撛趺窗裭ist中的所有元素轉(zhuǎn)為字符串呢羊精?


在這里還是要推薦下我自己建的Python開(kāi)發(fā)學(xué)習(xí)裙:304 零五零 799斯够,群里都是學(xué)Python開(kāi)發(fā)的,如果你正在學(xué)習(xí)Python 喧锦,小編歡迎你加入读规,大家都是軟件開(kāi)發(fā)黨,不定期分享干貨(只有Python軟件開(kāi)發(fā)相關(guān)的)燃少,包括我自己整理的一份2018最新的Python進(jìn)階資料和高級(jí)開(kāi)發(fā)教程束亏,歡迎進(jìn)階中和進(jìn)想深入Python的小伙伴

3. 查找list中出現(xiàn)次數(shù)最多的元素

給定一個(gè)包含多個(gè)元素的list,讓你查找其中出現(xiàn)次數(shù)最多的元素阵具,你會(huì)怎么做枪汪?在下圖中,我們介紹了兩種方法怔昨,其中第一種是利用max()函數(shù)的key參數(shù),第二種則是使用Counter宿稀。

4. 判斷兩個(gè)字符串是否是anagram

所謂anagram趁舀,就是兩個(gè)詞所用的字母及其個(gè)數(shù)都是一樣的,但是它們字母的位置不一樣祝沸,比如abc矮烹,bac,acb罩锐。在Python中奉狈,Counter可以解決這個(gè)問(wèn)題,

5. 字符串倒轉(zhuǎn)

字符串倒轉(zhuǎn)涩惑,就是把1234轉(zhuǎn)成4321仁期。下面我們介紹了三種方法:

方法一:最簡(jiǎn)單的切片法,a[::-1]就相當(dāng)于a[尾:頭:-1]。

方法二:用Python自帶reversed()函數(shù)跛蛋,它可被用于list倒轉(zhuǎn)熬的。

方法三:第三種是通過(guò)倒轉(zhuǎn)數(shù)據(jù)類型和切片倒轉(zhuǎn)整數(shù)。

6. list倒轉(zhuǎn)

和字符串倒轉(zhuǎn)類似赊级,切片法也可以被用于list倒轉(zhuǎn)押框,如下面的第一種方法。第二種方法調(diào)用的是上面提到的reversed()函數(shù)理逊。

7. 二維矩陣轉(zhuǎn)置

如果要轉(zhuǎn)置矩陣橡伞,可以直接使用使用zip()函數(shù)。除此之外晋被,沒(méi)有比import numpy更簡(jiǎn)單的方法了兑徘。

8. 鏈?zhǔn)奖容^

如果想輸出數(shù)組中介于4-7之間的元素,java是這么寫的:if( b > 4 && b < 7){ }墨微,但Python更人性化道媚。包括最后一句1 == b < 20,這和C翘县、java也很不一樣最域。


9. 鏈?zhǔn)秸{(diào)用

在python中實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用只需在函數(shù)返回對(duì)象自己就行了。

10. 復(fù)制list

如果是剛學(xué)習(xí)Python的C用戶锈麸,你可能會(huì)想寫b = a镀脂,但這是錯(cuò)的。在Python中忘伞,變量指向的是某個(gè)對(duì)象的標(biāo)簽薄翅。也就是說(shuō),按照這種的寫法氓奈,b和a指向的是內(nèi)存中的同一個(gè)列表翘魄,對(duì)b操作,就相當(dāng)于對(duì)a操作舀奶。所以正確的寫法有以下幾種:

方法一:b=a[:]暑竟。

方法二:b=list(a)。

方法三:使用Python 3的copy()函數(shù)育勺,直接復(fù)制list但荤,類似a[:]。

方法四:使用copy.deepcopy()涧至。

11. 判斷一個(gè)key是否在字典中

如果目標(biāo)key不在字典中腹躁,以下代碼會(huì)返回None或default。

12. 按value排序字典

Python的內(nèi)置字典數(shù)據(jù)類型是無(wú)序的南蓬,而key可以被用來(lái)獲取對(duì)應(yīng)的value纺非。有時(shí)我們需要根據(jù)value對(duì)字典中的item進(jìn)行排序輸出哑了。方法如下所示:

方法一:用sorted函數(shù)排序,其中key參數(shù)是lamda表達(dá)式铐炫。

方法二:用operator.itemgetter而不是lamda表達(dá)式進(jìn)行排序垒手。

方法三:如果只需得到排序后的key,可用.get倒信。

13. for ... else語(yǔ)法

14. 用逗號(hào)分隔list

下面分別是字符串list科贬、數(shù)字list和混合list的逗號(hào)分隔方式。

15. 合并字典

方法一:Python 3.5可以存在重復(fù)鍵值鳖悠,print({**d1, **d2})榜掌。

方法二:在內(nèi)存中創(chuàng)建兩個(gè)列表,再創(chuàng)建第三個(gè)列表乘综,拷貝完成后憎账,創(chuàng)建新的dict,刪除掉前三個(gè)列表卡辰。

方法三:d1.update()胞皱。

16. list中的最小和最大索引

17. 從list中刪除重復(fù)項(xiàng)

方法一:把list轉(zhuǎn)成set,去除重復(fù)項(xiàng)九妈,再轉(zhuǎn)回list反砌。

方法二:調(diào)用collections里的OrderedDict,和set差不多萌朱。

希望本文能給你幫助宴树,我選擇Numpy。更多編程方面的分享請(qǐng)關(guān)注薇信公眾號(hào):程序員大牛晶疼!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酒贬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翠霍,更是在濱河造成了極大的恐慌锭吨,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寒匙,死亡現(xiàn)場(chǎng)離奇詭異耐齐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蒋情,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耸携,“玉大人棵癣,你說(shuō)我怎么就攤上這事《嵫埽” “怎么了狈谊?”我有些...
    開(kāi)封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我河劝,道長(zhǎng)壁榕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任赎瞎,我火速辦了婚禮牌里,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘务甥。我一直安慰自己牡辽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布敞临。 她就那樣靜靜地躺著态辛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挺尿。 梳的紋絲不亂的頭發(fā)上奏黑,一...
    開(kāi)封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音编矾,去河邊找鬼熟史。 笑死,一個(gè)胖子當(dāng)著我的面吹牛洽沟,可吹牛的內(nèi)容都是我干的以故。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼裆操,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怒详!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起踪区,我...
    開(kāi)封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤昆烁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后缎岗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體静尼,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年传泊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鼠渺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡眷细,死狀恐怖拦盹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溪椎,我是刑警寧澤普舆,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布恬口,位于F島的核電站,受9級(jí)特大地震影響沼侣,放射性物質(zhì)發(fā)生泄漏祖能。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一蛾洛、第九天 我趴在偏房一處隱蔽的房頂上張望养铸。 院中可真熱鬧,春花似錦雅潭、人聲如沸揭厚。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)筛圆。三九已至,卻和暖如春椿浓,著一層夾襖步出監(jiān)牢的瞬間太援,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工扳碍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留提岔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓笋敞,卻偏偏與公主長(zhǎng)得像碱蒙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子夯巷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 一赛惩、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,813評(píng)論 2 16
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,744評(píng)論 0 10
  • 現(xiàn)在是自媒體的時(shí)代趁餐,每個(gè)人都可以發(fā)出自己的聲音喷兼,每個(gè)人也都可以做主播,錄制屬于自己的電臺(tái)后雷。 跟人的...
    清盟閱讀 303評(píng)論 0 2
  • 被控制著涌進(jìn)地鐵 別無(wú)選擇的時(shí)候就是死的 好像會(huì)移動(dòng)的然後笨笨的機(jī)器人喔 遙控器發(fā)出的信號(hào)就是向前移動(dòng)向前移動(dòng)不許...
    莉本莉閱讀 208評(píng)論 0 0
  • 歷時(shí)五十八天季惯,遠(yuǎn)征隊(duì)到達(dá)喜馬拉雅山腳。接下來(lái)大伙應(yīng)該何去何從意見(jiàn)不一臀突,甚至可以說(shuō)截然相反勉抓。很明顯,整支隊(duì)伍此時(shí)分裂...
    獨(dú)孤孤獨(dú)轱轆犢子閱讀 224評(píng)論 0 0