自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

開(kāi)發(fā) 前端
以下的20個(gè)小的程序段,看似非常的簡(jiǎn)單,但是卻非常的有技巧性,并且對(duì)個(gè)人的編程能力是一個(gè)很好的檢驗(yàn),大家應(yīng)該在日常的編程中多多使用,多多練習(xí)

當(dāng)今python編程語(yǔ)言的潮流已經(jīng)成為不可阻擋的趨勢(shì),python以其較高的可讀性和簡(jiǎn)潔性備受程序員的喜愛(ài)。而python編程中的一些小的技巧,運(yùn)用的恰當(dāng),會(huì)讓你的程序事半功倍。

以下的20個(gè)小的程序段,看似非常的簡(jiǎn)單,但是卻非常的有技巧性,并且對(duì)個(gè)人的編程能力是一個(gè)很好的檢驗(yàn),大家應(yīng)該在日常的編程中多多使用,多多練習(xí)。

1.字符串的翻轉(zhuǎn)

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

字符串的翻轉(zhuǎn),首先最簡(jiǎn)單的方法就是利用切片的操作,來(lái)實(shí)現(xiàn)翻轉(zhuǎn),其次可以利用reduce函數(shù)來(lái)實(shí)現(xiàn)翻轉(zhuǎn),在python3中,reduce函數(shù)需要從functools中進(jìn)行導(dǎo)入。

2.判斷字符串是否是回文

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

該例也可以看作是第一例的應(yīng)用,利用字符串的翻轉(zhuǎn)來(lái)判斷字符是否是回文字符串。

3.單詞大小寫(xiě)

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

面對(duì)一個(gè)字符串,想將里面的單詞首字母大寫(xiě),只需要調(diào)用title()函數(shù),而所有的字母大寫(xiě)只需要調(diào)用upper()函數(shù),字符串首字母大寫(xiě)則是調(diào)用capitalize()函數(shù)即可。

4.字符串的拆分

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

字符串的拆分可以直接利用split函數(shù),進(jìn)行實(shí)現(xiàn),返回的是列表,而strip函數(shù)用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)。

5.將列表中的字符串合并

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

這一條可以認(rèn)為是第4條的反例,這里是將列表中的字符串合并為字符串。第4條可以與第5條結(jié)合,來(lái)去除字符串中不想留下的項(xiàng)。

6.尋找字符串中唯一的元素

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

在python中,對(duì)于唯一值的篩查,首先應(yīng)該想到對(duì)于set的利用,set可以幫助我們快速的篩查重復(fù)的元素,上述程序中,set不僅可以對(duì)字符串,而且還可以針對(duì)列表進(jìn)行篩查。

7.將元素進(jìn)行重復(fù)

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

將元素進(jìn)行重復(fù),可以采用“乘法”的形勢(shì),直接乘以原來(lái)的元素,也可以采用“加法”的形式,更方便理解。

8.基于列表的擴(kuò)展

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

基于列表的擴(kuò)展,可以充分利用列表的特性和python語(yǔ)法的簡(jiǎn)潔性,來(lái)產(chǎn)生新的列表,或者將嵌套的列表進(jìn)行展開(kāi)。

9. 將列表展開(kāi)

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

首先,方法1中 ,我們調(diào)用的是iteration_utilities 中的deepflatten函數(shù),第二種方法直接采用遞歸的方法,我們自己來(lái)實(shí)現(xiàn)復(fù)雜列表的展平,便可以得到展開(kāi)后的列表。

10.二值交換

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

Python中的二值交換,可以直接采用交換的方式,如上圖的方法1,而方法2所示的方法,借助第三個(gè)變量,來(lái)實(shí)現(xiàn)了兩個(gè)數(shù)值的交換。

11.統(tǒng)計(jì)列表中元素的頻率

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

我們可以直接調(diào)用collections中的Counter類(lèi)來(lái)統(tǒng)計(jì)元素的數(shù)量,當(dāng)然也可以自己來(lái)實(shí)現(xiàn)這樣的統(tǒng)計(jì),但是從簡(jiǎn)潔性來(lái)講,還是以Counter的使用比較方便。

12.判斷字符串所含元素是否相同

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

Counter函數(shù)還可以用來(lái)判斷字符串中包含的元素是否相同,無(wú)論字符串中元素順序如何,只要包含相同的元素和數(shù)量,就認(rèn)為其是相同的。

13.將數(shù)字字符串轉(zhuǎn)化為數(shù)字列表

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

上述程序中,方法1利用的map函數(shù),map函數(shù)可以將str19中的每個(gè)元素都執(zhí)行int函數(shù),其返回的是一個(gè)迭代器,利用list函數(shù)來(lái)將其轉(zhuǎn)化為列表的形式。注意,在python2中執(zhí)行map函數(shù)就會(huì)直接返回列表,而python3做了優(yōu)化,返回的是迭代器,節(jié)省了內(nèi)存。

14.使用try-except-finally模塊

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

當(dāng)我們?cè)趫?zhí)行程序時(shí),可能會(huì)遇到某些不可預(yù)知的錯(cuò)誤,使用try-except可以幫助我們?nèi)ゲ东@這些錯(cuò)誤,然后輸出提示。注意,如果需要程序無(wú)論是否出錯(cuò),都要執(zhí)行一些程序的化,需要利用finally來(lái)實(shí)現(xiàn)。

15. 使用enumerate() 函數(shù)來(lái)獲取索引-數(shù)值對(duì)

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如上圖的列表,字符串)組合為一個(gè)索引序列。

16.代碼執(zhí)行消耗時(shí)間

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

利用time()函數(shù),在核心程序開(kāi)始前記住當(dāng)前時(shí)間點(diǎn),然后在程序結(jié)束后計(jì)算當(dāng)前時(shí)間點(diǎn)和核心程序開(kāi)始前的時(shí)間差,可以幫助我們計(jì)算程序執(zhí)行所消耗的時(shí)間。

17.檢查對(duì)象的內(nèi)存占用情況

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

在python中可以使用sys.getsizeof來(lái)查看元素所占內(nèi)存的大小。

18.字典的合并

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

在python3中,提供了新的合并字典的方式,如方法1所示,此外python3還保留了python2的合并字典的方式,如方法2所示。

19.隨機(jī)采樣

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

使用random.sample()函數(shù),可以從一個(gè)序列中選擇n_samples個(gè)隨機(jī)且獨(dú)立的元素。

20.檢查唯一性

 

Python大牛私藏的20個(gè)精致代碼,短小精悍,用處無(wú)窮

通過(guò)檢查列表長(zhǎng)度是否與set后的列表長(zhǎng)度一致,來(lái)判斷列表中的元素是否是獨(dú)一無(wú)二的。

責(zé)任編輯:未麗燕 來(lái)源: 騰訊云
相關(guān)推薦

2020-03-03 14:55:03

Python代碼編程語(yǔ)言

2020-03-03 10:18:42

Python數(shù)據(jù)程序員

2024-11-14 08:52:12

2022-04-25 08:43:47

pandas代碼Python

2021-06-08 09:36:20

Python代碼內(nèi)存

2023-12-06 09:49:36

自動(dòng)駕駛算法

2021-04-12 15:34:33

C語(yǔ)言printfscanf

2021-12-19 22:48:53

JavaScript開(kāi)發(fā)代碼

2017-11-23 15:24:35

Python速覽實(shí)戰(zhàn)

2019-06-24 09:57:39

網(wǎng)絡(luò)工具調(diào)試

2012-05-22 00:55:44

代碼工具CodeMirror

2010-07-16 14:00:07

喬布斯

2020-09-15 08:53:08

parallelStr表達(dá)式函數(shù)

2011-03-25 13:22:45

mSQL數(shù)據(jù)庫(kù)

2019-06-27 17:00:09

nc命令 Linux

2019-07-02 10:36:30

JavaScript硬件開(kāi)發(fā)

2010-09-28 11:05:49

jQuery

2020-09-29 06:37:30

Java泛型

2020-09-29 13:03:45

安卓應(yīng)用開(kāi)發(fā)工具開(kāi)發(fā)

2018-10-11 09:40:53

前端JavaScript編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)