新聞中心
其實(shí)Python是入門(mén)容易精通難,大家平時(shí)要養(yǎng)成記錄的習(xí)慣,好的代碼要記錄下來(lái),學(xué)會(huì)總結(jié),經(jīng)常翻一翻會(huì)有收獲!今天我來(lái)分享一些我自己記錄的代碼結(jié)構(gòu),歡迎拍磚!

創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的平桂網(wǎng)站建設(shè)公司,平桂接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行平桂網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
01.簡(jiǎn)潔的表達(dá)式
點(diǎn)評(píng):Python因?yàn)楹?jiǎn)潔高效而出名,就是因?yàn)檎Z(yǔ)法非常簡(jiǎn)單,而且內(nèi)置了很多強(qiáng)大的數(shù)據(jù)結(jié)構(gòu):
- 比如我們可以大量用推導(dǎo)列表來(lái)生成很多簡(jiǎn)潔的代碼
- 比如我們可以用if else組合,本來(lái)需要2-3行代碼寫(xiě)的,一行搞定!
02.排序
忽略想起了一句臺(tái)詞,“有人的地方就有江湖”,那么有數(shù)組這樣的數(shù)據(jù)結(jié)構(gòu)一定涉及到排序,取最大值,取最小值。
點(diǎn)評(píng):這個(gè)heapq庫(kù)非常好用,尤其是我們?cè)谌∫恍┝斜淼念^部數(shù)據(jù),比如最大幾個(gè),最小幾個(gè)經(jīng)常用到,很實(shí)用的一招!啥也不說(shuō)了,趕緊背下來(lái)!
03.查詢(xún)
排序和查詢(xún)都是好基友,長(zhǎng)的數(shù)據(jù)結(jié)構(gòu)里面(字典,列表)里面我們一定會(huì)有查詢(xún),過(guò)濾的需求。有的時(shí)候,我們需要從一個(gè)很長(zhǎng)的列表里面,找到某一個(gè)或者某一類(lèi)的元素,怎么辦,很簡(jiǎn)單,用高級(jí)函數(shù)filter :
用lambda配合filter過(guò)濾
點(diǎn)評(píng):lambda是一個(gè)非常簡(jiǎn)潔的函數(shù)表達(dá)方式,短小精悍,加上配合filter一起使用,非常漂亮。比如我們通過(guò) 字符串里的startswith內(nèi)置函數(shù),非常方便的過(guò)濾出列表里面我們需要的數(shù)據(jù)!(Python3稍微改一下再filter之外再加一個(gè)list,不然生成的是迭代器地址)
用正則過(guò)濾
點(diǎn)評(píng):正則是一個(gè)非常不錯(cuò)的過(guò)濾方法,有的時(shí)候好的正則頂?shù)纳蠋资写a,精通正則對(duì)玩數(shù)據(jù)分析,數(shù)據(jù)清洗是必需的技能!
04.碾平list
有的時(shí)候我們會(huì)遇到復(fù)雜的數(shù)據(jù)結(jié)構(gòu),比如列表里面套列表,層層嵌套,非常麻煩。有幾種方法可以碾平:
第一種傳統(tǒng)方法
有的時(shí)候我們會(huì)遇到復(fù)雜的數(shù)據(jù)結(jié)構(gòu),比如列表里面套列表,層層嵌套,非常麻煩。
第二種傳統(tǒng)方法
點(diǎn)評(píng):這兩招看上去非常簡(jiǎn)單,實(shí)際上理解起來(lái)很復(fù)雜,把很多技巧結(jié)合在一行里面,反正第二種我還能接受,第三種口味太重了,看的有點(diǎn)暈!
05.帶條件的推導(dǎo)列表
推導(dǎo)列表應(yīng)該是我最喜歡的一種Pythonic方式,它的演變有很多手法,這幾種都是非常常見(jiàn)的,多讀幾遍,背下來(lái)!
06.漂亮的添加字典的方法
設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的時(shí)候,字典是必須的!很多時(shí)候我們會(huì)用帶下面的字典更新的方法,當(dāng)然更好的是collections模塊里面的defaultdict!
點(diǎn)評(píng):dict.update還是比較平易近人的,這個(gè)dict(dict,**options)用法我第一次看到的時(shí)候也是楞了一些,什么鬼,現(xiàn)在見(jiàn)多了,也就習(xí)慣了!
還有一塊沒(méi)有分享,就是類(lèi)相關(guān)的代碼!限于篇幅,我們后面單獨(dú)出一篇,類(lèi)方面的技巧和好的代碼太多了,因?yàn)轭?lèi)本身就涉及到兩個(gè)方面:
- 一個(gè)往內(nèi):比如Python里面有大量的魔方函數(shù)和內(nèi)置函數(shù),這里面有很多技巧,對(duì)于不同的應(yīng)用場(chǎng)景,有些簡(jiǎn)潔的用法。
- 一個(gè)往外:類(lèi)的設(shè)計(jì)必然涉及到繼承和組合,那么就一定會(huì)牽連到大名鼎鼎的設(shè)計(jì)模式,好的代碼結(jié)構(gòu)是非常清晰和容易擴(kuò)展的。
Python入門(mén)容易精通難,平時(shí)遇到優(yōu)秀的代碼一定要勤做筆記,不定時(shí)拿出來(lái)翻一翻,一定對(duì)你功力增長(zhǎng)大有裨益!
網(wǎng)站標(biāo)題:我珍藏的一些好的Python代碼,技巧,抓緊時(shí)間收藏!
當(dāng)前地址:http://m.fisionsoft.com.cn/article/cochoej.html


咨詢(xún)
建站咨詢(xún)
