知乎高贊!11個(gè)短小精悍的Python代碼!
Python里面的技巧很多,而且非常靈活,菜鳥(niǎo)剛?cè)腴T的時(shí)候,需要掌握一些常見(jiàn)解決問(wèn)題的技巧和套路。今天小編從知乎中收錄了一波高贊的短小的代碼,這些代碼非常實(shí)用,在日常的編程過(guò)程經(jīng)常會(huì)用到,一起來(lái)看一下!
1.獲取元音字母
上面的代碼其實(shí)是一個(gè)常見(jiàn)的過(guò)濾字符串里面的字母,比如過(guò)濾元音字母。其實(shí)有很多類似的這樣的需求都可以按照這個(gè)套路用。
2.首字母大寫(xiě)
如果我們需要把一段字符串的里面單詞大些,其實(shí)直接用string.title()函數(shù)就可以輕松搞定,Python里面的字符串其實(shí)內(nèi)置了很多有用的函數(shù),有興趣的同學(xué)可以去試一下。
3.合并兩個(gè)字典
字典是Python數(shù)據(jù)結(jié)構(gòu)里面最最重要的三大類型之一,掌握它的用法非常重要,比如字典的合并,字典的排序,字典的搜索等等。
4.計(jì)算代碼執(zhí)行時(shí)間
計(jì)算一段代碼的執(zhí)行時(shí)間,除了用linux一些內(nèi)置命令,其實(shí)用time函數(shù)來(lái)計(jì)算起始和結(jié)束的時(shí)間差,也是常用的一段手段,尤其是在代碼性能優(yōu)化的時(shí)候。當(dāng)然如果真的需要把代碼加速的話,也有一些其他的辦法,比如把核心代碼用C去寫(xiě),或者用pandas/numpy去寫(xiě)。
5.過(guò)濾掉列表里False值
過(guò)濾列表里面的值常見(jiàn)的我們young推導(dǎo)列表或者用內(nèi)置的filter函數(shù)也是可以的,短小精悍非常方便。
6.內(nèi)存的使用率
檢查Python各種數(shù)據(jù)結(jié)構(gòu)在內(nèi)存占的大小,一般就可以用sys模塊里面的getsizeof函數(shù)去堅(jiān)持,它會(huì)返回這個(gè)對(duì)象占內(nèi)存的字節(jié)數(shù)。
7.檢查是否有重復(fù)
堅(jiān)持一個(gè)列表是否有重復(fù),這個(gè)的需求非常非常常見(jiàn)。典型的做法就是用set直接去重,如果碰到復(fù)雜的列表數(shù)據(jù)結(jié)構(gòu),需要進(jìn)一步的寫(xiě)算法去去重。類似的這樣題目其實(shí)leetcode上有很多。
8.字典排序
字典排序問(wèn)題的解決一般用的最多的就是上面這招,利用sorted函數(shù)來(lái)處理,非常方便,如果不懂的一定要記住這招,死記硬背也要拿下。
9.搜索子字符串
在一個(gè)復(fù)雜的列表或者更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)里面進(jìn)行搜索,這樣的小需求在很多項(xiàng)目里面都有,套路都是循環(huán)進(jìn)行過(guò)濾,當(dāng)然有可以用推導(dǎo)列表進(jìn)行過(guò)濾。
10.列表分段
如何把一個(gè)長(zhǎng)的列表進(jìn)行分段,這里用了一個(gè)非常巧妙的方法化解,大家可以學(xué)習(xí)一下。
11.檢查文件是否存在
很多時(shí)候我們需要保存文件,比如csv,json,txt文件,一般會(huì)判斷一下這個(gè)文件路徑是否存在,如果不存在的創(chuàng)建文件夾然后進(jìn)行保存。