1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        20個(gè)值得學(xué)習(xí)的 Python 技巧

        共 3910字,需瀏覽 8分鐘

         ·

        2020-11-30 21:43

        點(diǎn)擊上方Python知識(shí)圈設(shè)為星標(biāo)

        回復(fù)100獲取100題PDF



        閱讀文本大概需要 5?分鐘


        近期精彩文章Python100例(附PDF下載地址)

        英文:Chaitanya Baweja,譯者:InfoQ-王文剛


        本文為大家介紹20個(gè)值得記住的 Python 技巧,可以提升您編程技巧, 并為您節(jié)省大量時(shí)間。在平常編程過程中,以下技巧大多非常有用。


        1 字符串反轉(zhuǎn)


        使用切片反轉(zhuǎn)字符串。


        str1="qwert" rev_str1=str1[::-1] #輸出  # trewq


        2 使首字母大寫


        將字符串轉(zhuǎn)換為首字母大寫。使用 title()方法完成的。


        str1="this?is?a?book" print(str1.title()) #?This?Is A Book


        3 在字符串中查找唯一元素


        下面代碼可用于查找字符串中所有的唯一元素。


        str1="aabbccccdddd"set1=set(str1) new_str=''.join(set1) print(new_str)


        4 重復(fù)打印字符串或列表


        下面的代碼中,對(duì)字符串或列表使用(*)。把字符串或列表復(fù)制多次。


        i=4 str1="abcd" list1=[1,2] print(str1*i) #?abcdabcdabcdabcd  print(list1*i) # [1,2,1,2,1,2,1,2]


        5 列表推導(dǎo)式


        列表推導(dǎo)式為我們提供了一種在其他列表基礎(chǔ)上創(chuàng)建列表的好方法。下面代碼通過將舊列表的每個(gè)元素乘以 2 來創(chuàng)建新列表。


        list1=[1,2,3] new_list1=[2*i for i in list1] #?[2,4,6]


        6 交換變量


        不使用另一個(gè)變量,實(shí)現(xiàn)變量交換。


        x=1 y=2 x,y=y,x print(x) # 2  print(y) # 1


        7 將字符串拆分為子字符串列表


        我們使用字符串類中的.split()方法將字符串拆分為子字符串列表,還可以將要分割的分隔符作為參數(shù)傳遞。


        str1="This is a book"str2="test/?str 2"print(str1.split()) # ['This', 'is', 'a', 'book'] print(str2.split('/')) # ['test', ' str 2']


        8 將字符串列表組合成單個(gè)字符串


        join()將作為參數(shù)傳遞的字符串列表組合為單個(gè)字符串。這種情況下,我們使用逗號(hào)分隔符將它們分開。


        list_str=['This','is','a','book']print(','.join(list_str))# This,is,a,book


        9 檢查回文字符串


        我們已經(jīng)討論過如何反轉(zhuǎn)字符串,因此回文字符串在 Python 中判斷起來非常簡單。


        str1="qqaabb"if str1==str1[::-1]:??print("回文")else:??print("不是")??# 不是


        10 列表中的元素統(tǒng)計(jì)


        使用 Python Counter 類。Python 計(jì)數(shù)器跟蹤容器中每個(gè)元素的頻數(shù), Counter()返回一個(gè)字典,元素作為鍵,頻數(shù)作為值。


        另外使用 most_common()函數(shù)來獲取列表中的 出現(xiàn)次數(shù)最多的元素。


        from?collections?import?Counterlist1=['a','b','a','c','c','c']count=Counter(list1)print(count)print(count['b'])print(count.most_common(1))


        11 判斷兩個(gè)字符串是否為異序詞


        異序詞是通過重新排列不同單詞或短語的字母而形成的單詞或短語。如果兩個(gè)字符串的 Counter 對(duì)象相等,那么它們就是相同字母異序詞對(duì)。


        s1,s2,s3="acbde","abced","abcda"c1,c2,c3=Counter(s1),Counter(s2),Counter(s3)if c1==c2:??print('12是異序詞')?if?c1==c3:???print('13是異序詞')


        12 使用 try-except-else 塊


        try / except 是 Python 中的異常處理模塊,添加 else 語句,會(huì)在 try 塊中沒有引發(fā)異常的情況下運(yùn)行。


        a,b=1,0try:  print(a/b)??#?b為0的時(shí)候觸發(fā)異常except ZeroDivisionError:??print("除數(shù)為0")else:??print("不存在異常")finally:??print("此段總是會(huì)執(zhí)行")


        13 通過枚舉獲取索引 / 值對(duì)


        可以使用下面的腳本,遍歷列表中的值及其索引。


        list1=['a','b','c','d','e']for?idx,val in enumerate(list1):  print('{0}:{1}'.format(idx,val))# 0:a# 1:b# 2:c# 3:d# 4:e


        14 獲取對(duì)象的內(nèi)存使用信息


        下面腳本可用于檢查對(duì)象的內(nèi)存使用信息。


        import sysnum=21print(sys.getsizeof(num))


        15 合并兩個(gè)字典


        在 Python 2 中,使用 update()合并兩個(gè)字典,Python 3 變得更加簡單。

        下面腳本中,兩個(gè)字典被合并。在相交的情況下,使用第二個(gè)字典中的值。


        dic1={'app':9,'banana':6}dic2={'banana':4,'orange':8}com_dict={**dic1,**dic2}# {'apple':9,'banana':4,'orange':8}


        16 計(jì)算代碼執(zhí)行所需的時(shí)間


        下面代碼使用庫函數(shù)來計(jì)算執(zhí)行代碼所需的時(shí)間消耗多少毫秒。


        import?times_time=time.time()a,b=1,2c=a+b e_time=time.time()time_taken_in_micro=(e_time-stime)*(10**6)print("程序運(yùn)行的毫秒:{0} ms".format(time_taken_in_micro))?


        17 展開列表清單


        有時(shí)不知道列表的嵌套深度,并且只想把所有元素放在一個(gè)普通列表中。可以通下面的方法得到數(shù)據(jù):


        from?iteration_utilities?import?deepflatten#?如果嵌套列表的深度只有1def flatten(l):??return [item for sublist in l for item in sublist]l=[[1,2,3],[3]]print(flatten(l))#?[1,2,3,3]
        # 如果不知道列表嵌套深度l=[[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]print(list(deepflatten(l,depth=3)))# [1,2,3,4,5,6,7,8,9,10]


        18 從列表中隨機(jī)取樣


        下面代碼從給定列表中生成了 n 個(gè)隨機(jī)樣本。


        import randomlist1=['a','b','c','d','e']ns=2samples=random.sample(list1,ns)print(samples)# ['a','c']


        或者使用secrets庫生成隨機(jī)樣本進(jìn)行, 下面代碼僅適用于 Python 3.x。


        import secretss_rand=secrets.SystemRanom()list1=['a','b','c','d','e']ns=2samples=s_rand.sample(list1,ns)print(samples)# ['c','d']


        19 數(shù)字列表化


        下面代碼將整數(shù)轉(zhuǎn)換為數(shù)字列表。


        nums=123456# 使用mapdigit_list=list(map(int,str(nums)))print(digit_list)# [1,2,3,4,5,6]# 使用列表表達(dá)式digit_list=[int(x)?for x in str(nums)]print(digit_list)# [1,2,3,4,5,6]


        20 唯一性檢查


        下面的函數(shù)檢查列表中的元素是否唯一。


        def unique(l):??if?len(l)==len(set(l)):??????print("所有元素是唯一的")???else:??????print("存在重復(fù)")?unique([1,2,3,4])?# 所有元素是唯一的?unique([1,1,3,4])?# 存在重復(fù)


        原文鏈接:

        https://medium.com/better-programming/20-python-snippets-you-should-learn-today-8328e26ff124


        pk哥個(gè)人微信


        添加pk哥個(gè)人微信即送Python資料


        → Python知識(shí)點(diǎn)100題的PDF

        → Python相關(guān)的電子書10本


        記得備注:“100題”




        往期推薦
        01

        公眾號(hào)所有文章匯總導(dǎo)航(2-10更新)

        02

        Python100例(附PDF下載地址)

        03

        求你了,別再用 pip 那烏龜?shù)乃俣热グ惭b庫了!


        點(diǎn)擊閱讀原文查看pk哥原創(chuàng)視頻

        我就知道你“在看”

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费一人看片色情 | 日本五十肥熟交尾 | 欧美人妖aa1片 | 欧美老妇506070 | 堕落人妻玛丽莲 | 久视频在线 | 丁香花在线电影小说 | 久久久国产精品免费 | 《豪妇荡乳》无删减版在线观看 | 亚洲成人MV |