新聞中心
這篇文章將為大家詳細(xì)講解有關(guān)學(xué)Python的7個小技巧,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、漢陽網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為漢陽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1.一行代碼,巧妙求解
列出1到20的數(shù)字,若是3的倍數(shù)就用apple代替,若是5的倍數(shù)就用orange代替,若既是3的倍數(shù)又是5的倍數(shù)就用appleorange代替
print ['apple'[i%35::]+'orange'[i%56::] or i for i in range(1,21)]
點評:字符串的處理我自認(rèn)為掌握的非常熟練了,各種技巧都已經(jīng)爛熟于心,但是當(dāng)我看到上面這個解法的時候,徹底跪了太巧妙了.
2.推導(dǎo)列表生成字典
推導(dǎo)列表我相信大家都用過,但是推導(dǎo)列表還能生成字典,非常簡潔.
字典的生成相信每個人都會,但是用推導(dǎo)列表生成字典并不是時刻都會想到的.
3.漂亮的zip生成
zip是一個非常重要的函數(shù),非常方便.熟悉掌握zip幫我大幅的減少函數(shù)的代碼和復(fù)雜度,并且提高效率。
print dict(zip('abcd',range(4))) {'a': 0, 'c': 2, 'b': 1, 'd': 3} chinese=[90,70,96] eng=[80,78,90] math=[96,84,80] total=[] for c,m,e in zip(chinese,eng,math): total.append(c+m+e) print total [266, 232, 266]
4.if val is not None
為啥會這樣寫呢,為啥不能寫成 if val ,不知道大家有沒有思考過這樣問題.
其實這兩者是有區(qū)別的:比如val 可能為'',0,None,[],{}
如果寫成if val 會把'',0,[],{}這樣的情況也包含在里面,有的時候我們其實只想過濾掉不為None的情況
5.list分組
有的時候我們希望對一個list進行分組,有什么好的辦法呢
通過一個推導(dǎo)列表和切片的完美組合,就可以輕松化解.
a=[3, 8, 9, 4, 1, 10, 6, 7, 2] print [a[i:i+3] for i in xrange(0,len(a),3)] [[3, 8, 9], [4, 1, 10], [6, 7, 2]]
6.遞歸的好例子
比如有一個嵌套的列表,里面嵌套了很多層,有列表有元組,層層嵌套,如何把它轉(zhuǎn)換成只有一層的列表,必須要用遞歸也能解決
7.一個不錯的namedtuple class
namedtuple是collections模塊里面的一個非常有用的函數(shù),類似一個小的迷你類,但是省去了類的一些復(fù)雜結(jié)構(gòu),可以像訪問類的變量一樣去訪問,非???
關(guān)于學(xué)Python的7個小技巧就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當(dāng)前文章:學(xué)Python的7個小技巧
文章出自:http://www.dlmjj.cn/article/jhhgdg.html