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>

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

        共 1746字,需瀏覽 4分鐘

         ·

        2021-01-12 23:27

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

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

        列表

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

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

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

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

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

        反轉(zhuǎn)字符串

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

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

        看起來有點亂吧, 用另一種方式來表達:

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

        看起來不錯吧,其實使用切片的方法可以更好,方法如下:

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

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

        將數(shù)字與數(shù)字進行求和,這是一個非常簡單的問題,

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

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

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

        因此,要避免這種情況,有一個更好的方法做到這一點。

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

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

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

        交換兩個數(shù)字

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

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

        但是,讓我們在一行代碼中做到這一點

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

        這樣更好。不是嗎?

        列表或字符串中最常見的元素

        有多種方法可以實現(xiàn)此需求,我們可以使用循環(huá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])


        福利時間

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

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

        領(lǐng)取方式:

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



        瀏覽 52
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        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>
            午夜视频在线瓜伦 | 亚洲色情电影视频 | 黄色小说视频在线观看 | 亚洲裸体视频 | 久久国产乱子伦精品一区二区 | ass漂亮女人下部picasa | 五级黄18以下免费 | 日韩人妻免费 | 亚洲精品午夜久久久久久久灵蛇爱 | 国产伦精品 |