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è)常用的Python技巧

        共 9258字,需瀏覽 19分鐘

         ·

        2024-05-02 10:05


        點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

        重磅干貨,第一時(shí)間送達(dá)

        來源:https://medium.com

        翻譯:小馬

        Python的可讀性和簡(jiǎn)單性是其廣受歡迎的兩大原因,本文介紹20個(gè)常用的Python技巧來提高代碼的可讀性,并能幫助你節(jié)省大量時(shí)間,下面的技巧將在你的日常編碼練習(xí)中非常實(shí)用。


        1.字符串反轉(zhuǎn)



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

        # Reversing a string using slicing

        my_string = "ABCDE"
        reversed_string = my_string[::-1]

        print(reversed_string)

        # Output
        # EDCBA


        2.每個(gè)單詞的第一個(gè)字母大寫



        使用title函數(shù)方法:

        my_string = "my name is chaitanya baweja"

        # using the title() function of string class
        new_string = my_string.title()

        print(new_string)

        # Output
        # My Name Is Chaitanya Baweja


        3. 字符串查找唯一元素



        使用集合的概念查找字符串的唯一元素:

        my_string = "aavvccccddddeee"

        # converting the string to a set
        temp_set = set(my_string)

        # stitching set into a string using join
        new_string = ''.join(temp_set)

        print(new_string)

        # output
        # cdvae


        4.重復(fù)打印字符串和列表n次



        你可以使用乘法符號(hào)(*)打印字符串或列表多次:

        n = 3 # number of repetitions

        my_string = "abcd"
        my_list = [1,2,3]

        print(my_string*n)
        # abcdabcdabcd

        print(my_list*n)
        # [1,2,3,1,2,3,1,2,3]


        5.列表生成



        # Multiplying each element in a list by 2

        original_list = [1,2,3,4]

        new_list = [2*x for x in original_list]

        print(new_list)
        # [2,4,6,8]


        6.變量交換



        a = 1
        b = 2

        a, b = b, a

        print(a) # 2
        print(b) # 1


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



        使用.split()函數(shù):

        string_1 = "My name is Chaitanya Baweja"
        string_2 = "sample/ string 2"

        # default separator ' '
        print(string_1.split())
        # ['My', 'name', 'is', 'Chaitanya', 'Baweja']

        # defining separator as '/'
        print(string_2.split('/'))
        # ['sample', ' string 2']


        8.多個(gè)字符串組合為一個(gè)字符串



        list_of_strings = ['My', 'name', 'is', 'Chaitanya', 'Baweja']

        # Using join with the comma separator
        print(','.join(list_of_strings))

        # Output
        # My,name,is,Chaitanya,Baweja


        9.檢測(cè)字符串是否為回文



        my_string = "abcba"

        if my_string == my_string[::-1]:
        print("palindrome")
        else:
        print("not palindrome")

        # Output
        # palindrome


        10. 統(tǒng)計(jì)列表中元素的次數(shù)



        # finding frequency of each element in a list
        from collections import Counter

        my_list = ['a','a','b','b','b','c','d','d','d','d','d']
        count = Counter(my_list) # defining a counter object

        print(count) # Of all elements
        # Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1})

        print(count['b']) # of individual element
        # 3

        print(count.most_common(1)) # most frequent element
        # [('d', 5)]


        11.判斷兩個(gè)字符串是否為Anagrams



        Anagrams的含義為兩個(gè)單詞中,每個(gè)英文單詞(不含大小寫)出現(xiàn)的次數(shù)相同,使用Counter類判斷兩個(gè)字符串是否為Anagrams。

        from collections import Counter

        str_1, str_2, str_3 = "acbde", "abced", "abcda"
        cnt_1, cnt_2, cnt_3 = Counter(str_1), Counter(str_2), Counter(str_3)

        if cnt_1 == cnt_2:
        print('1 and 2 anagram')
        if cnt_1 == cnt_3:
        print('1 and 3 anagram')

        # output
        # 1 and 2 anagram


        12. 使用try-except-else-block模塊



        except獲取異常處理:

        a, b = 1,0

        try:
        print(a/b)
        # exception raised when b is 0
        except ZeroDivisionError:
        print("division by zero")
        else:
        print("no exceptions raised")
        finally:
        print("Run this always")

        # output
        # division by zero
        # Run this always


        13. 使用枚舉函數(shù)得到key/value對(duì)



        my_list = ['a', 'b', 'c', 'd', 'e']

        for index, value in enumerate(my_list):
        print('{0}: {1}'.format(index, value))

        # 0: a
        # 1: b
        # 2: c
        # 3: d
        # 4: e


        14.檢查對(duì)象的內(nèi)存使用情況



        import sys

        num = 21

        print(sys.getsizeof(num))

        # In Python 2, 24
        # In Python 3, 28


        15.合并字典



        dict_1 = {'apple': 9, 'banana': 6}
        dict_2 = {'banana': 4, 'orange': 8}

        combined_dict = {**dict_1, **dict_2}

        print(combined_dict)
        # Output
        # {'apple': 9, 'banana': 4, 'orange': 8}


        16.計(jì)算執(zhí)行一段代碼所花費(fèi)的時(shí)間



        使用time類計(jì)算運(yùn)行一段代碼所花費(fèi)的時(shí)間:

        import time

        start_time = time.time()
        # Code to check follows
        for i in range(10**5):
        a, b = 1,2
        c = a+ b
        # Code to check ends
        end_time = time.time()
        time_taken_in_micro = (end_time- start_time)*(10**6)

        print(time_taken_in_micro)

        # output
        # 18770.217895507812


        17. 列表展開



        from iteration_utilities import deepflatten

        # if you only have one depth nested_list, use this
        def flatten(l):
        return [item for sublist in l for item in sublist]

        l = [[1,2,3],[3]]
        print(flatten(l))
        # [1, 2, 3, 3]

        # if you don't know how deep the list is nested
        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. 列表采樣



        import random

        my_list = ['a', 'b', 'c', 'd', 'e']
        num_samples = 2

        samples = random.sample(my_list,num_samples)
        print(samples)
        # [ 'a', 'e'] this will have any 2 random values


        19.數(shù)字化



        將整數(shù)轉(zhuǎn)化成數(shù)字列表:

        num = 123456

        # using map
        list_of_digits = list(map(int, str(num)))

        print(list_of_digits)
        # [1, 2, 3, 4, 5, 6]

        # using list comprehension
        list_of_digits = [int(x) for x in str(num)]

        print(list_of_digits)
        # [1, 2, 3, 4, 5, 6]


        20.檢查列表元素的唯一性



        檢查列表中每個(gè)元素是否為唯一的:

        def unique(l):
        if len(l)==len(set(l)):
        print("All elements are unique")
        else:
        print("List has duplicates")

        unique([1,2,3,4])
        # All elements are unique

        unique([1,1,2,3])
        # List has duplicates


        歡迎掃碼關(guān)注:

           
        下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
        在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
        小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

        下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
        小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

        交流群


        歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


        瀏覽 42
        點(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>
            解开老师裙子猛烈进入软件 | 乡村美女户外勾搭av | 亚洲婷婷综合网 | 国际操逼网 | 操逼女人操逼毛片 | 三人交free性欧美 | 夫妻一级性生活片 | 欧美成人网站免费在线观看 | 国产男女操逼视频 | 激情婷婷丁香五月色综合小说 |