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

          5種非常棒的 Python 技巧,使你的代碼更優(yōu)雅

          共 1746字,需瀏覽 4分鐘

           ·

          2021-01-12 23:27

          Python 是全世界程序員使用最廣泛的語(yǔ)言之一。它可用應(yīng)用于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和數(shù)據(jù)科學(xué)的各種項(xiàng)目。語(yǔ)法簡(jiǎn)潔也使得它成為 Python 初學(xué)者的首選語(yǔ)言。

          今天教大家一些 Python 技巧,它可以使你的代碼更優(yōu)雅和高效。

          列表

          只需一行代碼,讓你的代碼看起來(lái)更簡(jiǎn)潔,并且看起來(lái)更專業(yè)。

          a?=?[2,5,7,9]
          b?=?[]
          for?i?in?range(len(a)):
          ????b.append(a[i]+1)

          這是正常的 code 方式,現(xiàn)在讓它更加簡(jiǎn)潔、專業(yè)一點(diǎn)。

          a?=?[2,5,7,9]
          b?=?[a[i]+1?for?i?in?range(len(a))]?

          你可以看到代碼之間的差別。現(xiàn)在這只是一個(gè)簡(jiǎn)單的例子,后續(xù)你會(huì)發(fā)現(xiàn)有更多的應(yīng)用案例,并可以大幅幫你減少代碼長(zhǎng)度。

          反轉(zhuǎn)字符串

          讓我們編寫(xiě)一些代碼來(lái)反轉(zhuǎn)字符串。

          def?reverse_string(string):
          ?????result=""
          ?????for?c?in?range(len(string),-1,-1):
          ??????????result?=?result?+?string[c]
          ?????return?result?

          看起來(lái)有點(diǎn)亂吧, 用另一種方式來(lái)表達(dá):

          def?reverse_string(string):
          ????result?=?[?string[c]?for?c?in?range(len(string),-1,-1)]
          ????return?"".join(result)

          看起來(lái)不錯(cuò)吧,其實(shí)使用切片的方法可以更好,方法如下:

          def?reverse_string(string):
          ????return?string[::-1]

          將數(shù)字與數(shù)字進(jìn)行求和

          將數(shù)字與數(shù)字進(jìn)行求和,這是一個(gè)非常簡(jiǎn)單的問(wèn)題,

          首先,我們可以用傳統(tǒng)方法解決這個(gè)問(wèn)題:

          def?sum_a_num(num):
          ????sum?=?0
          ????while?num?>?0:
          ????????sum+=?num%10
          ????????num//=10
          ????return?sum

          這是可以的,但在緊張的情況下,最終可能會(huì)與運(yùn)算符發(fā)生拼寫(xiě)錯(cuò)誤或錯(cuò)誤,最終得到錯(cuò)誤的結(jié)果,并花費(fèi)數(shù)小時(shí)嘗試調(diào)試代碼。

          因此,要避免這種情況,有一個(gè)更好的方法做到這一點(diǎn)。

          def?sum_a_num(num):
          ????return?sum(list(map(int,str(num))))

          現(xiàn)在上述代碼所做的是:

          • 將 num 轉(zhuǎn)換為字符串;
          • map() 函數(shù)在字符串上遍數(shù),并將每個(gè)字符轉(zhuǎn)換為整數(shù);
          • list() 函數(shù)將映射對(duì)象轉(zhuǎn)換為列表,然后求和;
          num?=?2367
          str(num)?=?'2367'
          list(map(int,str(num)))?=?[2,3,6,7]
          sum(list(map(int(str(num))))?=?18

          交換兩個(gè)數(shù)字

          現(xiàn)在,這是一件非常簡(jiǎn)單的事情。

          x?=?10
          y?=?15
          x?=?x?+?y
          y?=?x?-?y
          x?=?x?-?y

          但是,讓我們?cè)谝恍写a中做到這一點(diǎn)

          x?=?10
          y?=?15
          x,y?=?y,x

          這樣更好。不是嗎?

          列表或字符串中最常見(jiàn)的元素

          有多種方法可以實(shí)現(xiàn)此需求,我們可以使用循環(huán)以簡(jiǎn)單的方式做到這一點(diǎn)。下面我分享兩種更高效的方法:

          l?=?[1,2,1,4,6,2,7,8,2,2]
          print(max(l,key?=?l.count))

          或者

          my_string?=?"python_is_great"
          print(sorted(my_string,key?=?my_string.count)[0])


          福利時(shí)間

          大家好,最后給大家免費(fèi)分享 Python 三件套:《ThinkPython》、《簡(jiǎn)明Python教程》、《Python進(jìn)階》的PDF電子版。如果你是剛?cè)腴T(mén)的小白,不用想了,這是最好的學(xué)習(xí)教材。

          現(xiàn)在免費(fèi)分享出來(lái),有需要的讀者可以下載學(xué)習(xí),在下面的公眾號(hào)里回復(fù)關(guān)鍵字:三件套,就行。

          領(lǐng)取方式:

          長(zhǎng)按掃碼,發(fā)消息?[三件套]



          瀏覽 52
          點(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>
                  黄色级片视频视频 | 99毛片 | 国产成人 亚洲 欧洲在线 | 豆花自拍成人精品视频 | 国产免费A片 |