<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          你必須掌握的20個(gè)python代碼,短小精悍,用處無(wú)窮

          共 1926字,需瀏覽 4分鐘

           ·

          2020-03-10 23:24

          e57ab2106aaae002cf685b98944ac8d5.webp

          作者 |?菜鳥(niǎo)哥
          來(lái)源 |?菜鳥(niǎo)學(xué)Python


          當(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)

          b5fac55d58fa10dbeb0a26ce2afdd88e.webp

          字符串的翻轉(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.判斷字符串是否是回文

          69aa8dc5ece3d8c79e9d38ed44d07532.webp

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


          3.單詞大小寫(xiě)

          b5b76543bd9c6887c607863f9868dde1.webp

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


          4.字符串的拆分

          4d49df26380c3c2d93d493feaaaf2173.webp

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


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

          78a5a92992996d93fa892dd66d24c3a9.webp

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


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

          af36d5b41835bfb3a51ed21d9287de77.webp


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


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

          9808072c76ad10b74949e1c4dc6d31e0.webp

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


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

          0e2bc8ee4c17f74eafb5535d0ff9a937.webp

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


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

          be4c58cb71bf5d9ccf14c453b7f9acd2.webp

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


          10.二值交換

          9dc773a738590cd3f8f3b31ee3dc03a8.webp

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



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

          ba2fc5791fcfa7a1187165b674305677.webp


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


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

          916b892fe683866f0dbdfdf770aac1bd.webp

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


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

          39ef6b0ad3b590361f7aa6a67f0631b1.webp

          上述程序中,方法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模塊

          3db8c03706a95fa894ee46acf762ff12.webp

          當(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ì)

          3050da50aea800c79d2156c16b565bb8.webp

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



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

          89be53ddfc125dd77e94e647e67ca767.webp

          利用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)存占用情況

          274ca9d7d660eeb09b15ed589283e9f5.webp

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


          18.字典的合并

          fc6e2b71268440e9330f1baf330c0806.webp

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



          19.隨機(jī)采樣

          b8255bcd5be38d2e9b71c91e294f1ac5.webp

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


          20.檢查唯一性

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




          這20個(gè)短小精悍的小例子還是非常實(shí)用的,尤其是對(duì)菜鳥(niǎo)來(lái)說(shuō),多練習(xí)一下對(duì)功力提升大有裨益!讀百遍,看千遍,不然自己動(dòng)手敲一邊。當(dāng)然如果上面20招全部掌握的小伙伴,麻煩留言區(qū)吱一聲。



          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91 黄网站在线观看 | 看A片在线| 手机看91AV | 日韩黄色片在线观看 | 天天操人人色 |