7種高效率的Python編程技巧
一直以來(lái),Python因其強(qiáng)大的語(yǔ)言表示能力和豐富數(shù)據(jù)類(lèi)型,可以在語(yǔ)法上玩出很多精煉有效的代碼,今天我們來(lái)總結(jié)7種Python的編程技巧,可以用在平時(shí)的編程中,提高可讀性、易用性和程序效率的提升。
1. 快速交換變量值
- x, y = 1, 2
- x, yy = y, x
通過(guò)以上代碼可以簡(jiǎn)單的實(shí)現(xiàn)變量之間的數(shù)據(jù)交換。
因?yàn)樵赑ython中,變量不直接存儲(chǔ)值,而是引用一個(gè)內(nèi)存地址,所以我們交換變量時(shí),只是交換了引用的地址。
我們還可以通過(guò)閱讀Python的源碼 ceval.c,其中的ROT_TWO、ROT_THREE、ROT_FOUR這些指令可以直接交換兩個(gè)變量、三個(gè)變量、四個(gè)變量的值。
2. 合并列表為字符串
- str_list = ['hello', 'world', 'good']
- str1 = "".join(str_list)
該方法比傳統(tǒng)的 "字符串1"+"字符串2"的方式效率更高,原因在于通過(guò)+號(hào)對(duì)字符串進(jìn)行連接,每次都會(huì)產(chǎn)生新的對(duì)象,內(nèi)存開(kāi)銷(xiāo)變大了。而join不會(huì)。
通過(guò)字符串的 join方法,我們可以將一個(gè)列表中的所有字符串元素拼接起來(lái),形成一個(gè)新的字符串。
3. 拆分字符串為列表
- str1 = 'hello world good'
- str_list = str1.split()
和join方法所對(duì)應(yīng)的是split方法,作用是根據(jù)標(biāo)識(shí)符分割字符串,生成一個(gè)新的列表。
4. 字典合并
- a = {'a': 1, 'b': 2}
- b = {'b': 3, 'c': 4}
- x = {**a, **b}
- print(x)
通過(guò)以上方式可以最簡(jiǎn)單的合并兩個(gè)字典的內(nèi)容。
5. 刪除字符串兩端的無(wú)用字符
- str1 = " 測(cè)試 "
- str2 = "///測(cè)試///"
- print(str1.strip())
- print(str2.strip("/"))
6. 找出列表中出現(xiàn)最多次數(shù)的元素
- list1 = [6, 1, 3, 4, 2, 2, 3, 1, 5, 5, 3]
- print(max(set(list1), key = list1.count))
該方法用到大量?jī)?nèi)置方法,效率比較高。
7. 初始化列表時(shí)快速填充元素
- a = [0] * 10
- print(a)
通過(guò)本方法可以快速填充元素?cái)?shù)量,省去了挨個(gè)初始化列表的過(guò)程。
總結(jié)
以上七種Python的編程技巧旨在拋磚引玉,平常在編程過(guò)程中,還有大量的技巧等著我們?nèi)グl(fā)掘并使用,我覺(jué)得所謂的編程技巧不是為了炫技,而是深入研究語(yǔ)言之后得出的一種必然結(jié)果,導(dǎo)致我們?cè)趯?xiě)代碼時(shí)會(huì)用到這些最優(yōu)解去解決問(wèn)題,而技巧本身也是帶有明顯的語(yǔ)言特征的,當(dāng)我們熟悉了Python語(yǔ)言之后,也自然會(huì)理解類(lèi)似的技巧為什么要以這樣的方式存在。