成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給skura
    發送

    0

    5 個越早知道越好的 Python 特性

    本文作者: skura 編輯:張路 2019-12-29 18:04
    導語:Python 有很多特性,初學者很難一開始就掌握所有的特性。現在我想要重點介紹其中五個最重要的特性。

    5 個越早知道越好的 Python 特性

     Kirill Sharkovski 發布在 Unsplash 雜志上的照片

    雷鋒網AI開發者按,Python 是近十年來興起的編程語言,并且被證明是一種非常強大的語言。我用 Python 構建了很多應用程序,從交互式地圖到區塊鏈。Python 有很多特性,初學者很難一開始就掌握所有的特性。

    即使你是一個從其他語言(如 C 或 MATLAB)轉換過來的程序員,用更高抽象級別的 Python 編寫代碼絕對是另一種體驗。回顧起來,有很多 Python 特性如果我能早點知道,肯定能少走不少彎路?,F在我想要重點介紹其中五個最重要的特性。

    1.理解 List——壓縮代碼

    很多人會將 lambda、map 和 filter 作為 Python 的「技巧」,每個初學者都應該學習這些技巧。雖然我相信它們是我們應該掌握的特性,但我發現由于缺乏靈活性,它們在大多數時候并不特別有用。

    Lambda 是一種在一行中組合函數以供一次性使用的方法。如果函數被多次調用,性能將受到影響。另一方面,map 將函數應用于列表中的所有元素,而 filter 將獲取滿足用戶定義條件的集合中元素的子集。

    add_func = lambda z: z ** 2   

    is_odd = lambda z: z%2 == 1    

    multiply = lambda x,y: x*y   


    aList = list(range(10))    

    print(aList)    

    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   

    5 個越早知道越好的 Python 特性

     Anastase Maragos 發表在 Unsplash 雜志上的照片

    列表理解是一種簡潔而靈活的方法,可以使用靈活的表達式和條件從其他列表創建列表。它是由方括號構造的,它有一個表達式或一個函數,只有當元素滿足某個條件時,該表達式或函數才應用于列表中的每個元素。它還可以嵌套來處理嵌套列表,并且比使用 map 和 filter 靈活得多。

    # Syntax of list comprehension
    [ expression(x) for x in aList if optional_condition(x) ]

    print(list(map(add_func, aList)))    

    print([x ** 2 for x in aList])    

    # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]    

    # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]    


    print(list(filter(is_odd, aList)))    

    print([x for x in aList if x%2 == 1])    

    # [1, 3, 5, 7, 9]    

    # [1, 3, 5, 7, 9]    

    2.列表循環

    Python 允許使用負索引,其中 Altruts [-1]== Altrue[LeN(Listor)-1 ]。因此,我們可以通過調用 a list[-2] 等獲得列表中的倒數第二個元素。

    我們還可以使用語法 aList[start:end:step] 對列表進行切片,其中包含起始元素,但不包含結束元素。因此,aList[2:5] 的結果是 [2,3,4]。我們也可以通過調用 a list[::-1] 來反轉列表,我發現這種技術非常優雅。

    5 個越早知道越好的 Python 特性

    Martin Shreder 發表在 Unsplash 雜志上的照片

    列表也可以分解成單獨的元素,或者使用星號將元素和子列表混合。

    a, b, c, d = aList[0:4]    

    print(f'a = {a}, b = , c = {c}, d = ppppp3pppp')    

    # a = 0, b = 1, c = 2, d = 3   



    a, *b, c, d = aList    

    print(f'a = {a}, b = , c = {c}, d = ppppp3pppp')    

    # a = 0, b = [1, 2, 3, 4, 5, 6, 7], c = 8, d = 9    

    3.壓縮和枚舉:for 循環

    Zip 函數創建一個迭代器,該迭代器聚合來自多個列表的元素。它允許在 for 循環中并行遍歷列表并并行排序。它可以用星號來解壓縮。

    numList = [0, 1, 2]    

    engList = ['zero', 'one', 'two']    

    espList = ['cero', 'uno', 'dos']    

    print(list(zip(numList, engList, espList)))    

    # [(0, 'zero', 'cero'), (1, 'one', 'uno'), (2, 'two', 'dos')]   



    for num, eng, esp in zip(numList, engList, espList):    

    print(f'{num} is {eng} in English and {esp} in Spanish.')    

    # 0 is zero in English and cero in Spanish.    

    # 1 is one in English and uno in Spanish.    

    # 2 is two in English and dos in Spanish.    

    Eng = list(zip(engList, espList, numList))    

    Eng.sort() # sort by engList    

    a, b, c = zip(*Eng)   



    print(a)    

    print(b)    

    print(c)    

    # ('one', 'two', 'zero')    

    # ('uno', 'dos', 'cero')    

    # (1, 2, 0)    

    5 個越早知道越好的 Python 特性

    Erol Ahmed 發表在 Unsplash 雜志上的照片

    枚舉一開始可能看起來有點嚇人,但在許多情況下它是非常方便的。它是一個經常在 for 循環中使用的自動計數器,不需要在 for 循環中創建和初始化計數器變量 by counter=0 和 counter+=1。枚舉和 zip 是構造 for 循環時最強大的兩個工具。

    upperCase = ['A', 'B', 'C', 'D', 'E', 'F']    

    lowerCase = ['a', 'b', 'c', 'd', 'e', 'f']    

    for i, (upper, lower) in enumerate(zip(upperCase, lowerCase), 1):    

            print(f'{i}: {upper} and {lower}.')    

    # 1: A and a.    

    # 2: B and b.    

    # 3: C and c.    

    # 4: D and d.    

    # 5: E and e.    

    # 6: F and f.    

    4.生成器:內存效率

    當我們打算對大量數據進行計算,但希望避免同時分配所有結果所需的內存時,會使用生成器。換句話說,它們會動態生成值,而不會將以前的值存儲在內存中,因此我們只能對它們進行一次迭代。

    它們通常用于讀取大文件或使用關鍵字 yield 生成無限序列。我經常發現它在我的大多數數據科學項目中很有用。

    def gen(n):    # an infinite sequence generator that generates integers >= n    

            while True:    

                  yield n    

                  n += 1   



    G = gen(3)     # starts at 3    

    print(next(G)) # 3    

    print(next(G)) # 4    

    print(next(G)) # 5    

    print(next(G)) # 6    

    5.虛擬環境:isolation

    如果你讀完本文中只記得其中一條,那么應該是虛擬環境的使用。

    5 個越早知道越好的 Python 特性

    Matthew Kwong 發布在 Unsplash 上的照片

    Python 應用程序通常使用很多不同的包,這些包來不同的開發人員,具有復雜的依賴關系。不同的應用程序是使用特定的庫設置開發的,其中的結果不能使用其他庫版本復制。不存在一次安裝就滿足所有應用要求的情況。

    conda create -n venv pip python=3.7  # select python version
    source activate venv
    ...
    source deactivate

    因此,為每個應用程序創建獨立的獨立虛擬環境 venv 是非常重要的,這可以使用 pip 或 conda 來完成。

    參考文章:

    Visualizing Bike Mobility in London using Interactive Maps and Animations

    via:https://towardsdatascience.com/5-python-features-i-wish-i-had-known-earlier-bc16e4a13bf4

    雷鋒網雷鋒網雷鋒網

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

    5 個越早知道越好的 Python 特性

    分享:
    相關文章
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說