<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技巧

          共 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)
          <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>
                  狗爷城中村嫖妓视频 | 免费观看黄色片 | 国产777777 | 日皮视频观看 | 人成视频在线观看 |