91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實用的技巧有哪些

發布時間:2021-11-03 16:39:23 來源:億速云 閱讀:123 作者:iii 欄目:編程語言

這篇文章主要講解了“Python實用的技巧有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python實用的技巧有哪些”吧!

1. 列表推導式

有人或許以前聽說過這些。Python中的一種編碼模式十分常見,因此需要進行修改。使用for循環創建列表是列表推導的價值所在。

列表推導式可讀且簡潔,也確實需要花費一些時間來了解發生了什么。下面將深入研究是否可以解決這個問題。

創建列表時應考慮列表推導式。列表推導式從一組方括號開始。先不管語法,以便展示兩種語言的相似之處

list_comp = [expression for itemin items]

任務是要替換一個for循環,該循環將項目添加到列表中。

new_list = [] for item in old_list:     new_list.append(item**2)

注:

  • 調用名為new_list is calledt

  • for循環遍歷舊列表中的項目

  • 使用添加方法將item ** 2添加到新列表中 

目前為止很簡單。

列表推導如下所示

new_list = [item**2 for item inold_list]

注:

  • 將表達式item **2作為要添加到列表中的表達式,這首先出現在列表推導式中。

  • 之后的for循環是要迭代的循環

  • 將其括在方括號中并為其分配變量new_list意味著,為循環的每個項目將表達式item ** 2添加到new_list中。

沒有附加方法或是不需要,一行代碼正適合!為了選擇要添加的內容,甚至可以添加條件語句。此功能還擴展到集合和詞典!甚至可以使用嵌套的for循環編寫列表推導式!

請注意,可能會出現過度使用的情況!僅當列表循環很簡單并且明確要創建列表時,才會使用列表推導。

2.生成器表達式——節省內存使用量

當擁有大量數據集并需要對其進行迭代或從中獲取結果,卻無法將所有數據存儲在內存中時,應想到生成器函數。除了不返回而為關鍵字yield進行切換操作,生成器函數非常像一個函數。

生成器函數創建了迭代器,而迭代器需要強制輸出它所擁有的值。它們不會在列表或集合中存儲對象。一次也只輸出一項。這稱為延遲循環。因此,讀取大文件時使用生成器。

def gen(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

注:

  • 創建函數gen

  • Yield關鍵字存儲值n,一直保留到調用next()方法為止

  • 使用賦值運算符,將1加到n

  • 這是一個無限循環,并一直持續

  • 調用next()方法,它將繼續輸出值

現在,這些值不會被存儲,只有在調用next()方法時才會跳出。生成器創建一個迭代器,然后依賴next()方法輸出值。

當有一個大數據集并且想要流式傳輸數據而不會使內存溢出時,這將很有用。

3. 使用zip迭代兩個對象

經常想迭代多個對象,以便能從每個對象中收集數據。Zip是允許執行此操作的函數!如果需要迭代充分理解文件名及其對應的鏈接,可以這樣做。

for file_name, link in zip(names, links):     print(file_name, link)

這將同時進入兩個對象,返回一個元組以及每個元組中的對應項。在循環中,將元組解壓為單獨的值file_name和link. zip()。可以根據需要選擇任意數量的集合,但是當最短的集合用盡時它將停止。

通過本文提及的列表推導式,Zip函數可用于迭代同一對象中的成對元素。

例如:

differences = [next_el - elt for el, next_el in zip(items, items[1:])

4. 計數器——生成對象的計數

計數器是字典的一個子類,其中對象的元素是鍵,而對象中項目的計數是值。它對計算對象的數量有效。訪問計數器時需要導入內置的collections模塊。

假設要計算列表中所有出現的字符串。

import collections counts = Counter([ Fred ,  Samantha ,  Jean-Claude ,  Samantha ]) print(counts)

輸出:

Counter({ Samantha : 2,  Fred :1,  Jean-Claude : 1})

計數器類的優點是可以對其進行更新,并且可以使用字典API來訪問值。

from collections import Counter c = Counter( abcdaab )for letter in  abcde :     print(letter, : , c[letter])

輸出:

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

注:

  • 使用字符串“ abcdaab”將c分配給Counter子類。計數器類提供每個字符的單獨計數。c [item]可以像字典一樣被訪問。

  • for循環,用于迭代字符串“abcde”,并為每個字符串分配letter。

  • 輸入字符串字符,打印可變letter并可以像字典一樣。每個字母的計數由c [letter]訪問。

5. 鏈接多個集合

如需一次迭代多個集合,則itertools模塊中的鏈接方法是實現這一目標的好方法。

for name in itertools.chain(first_name_list, second_name_list):    create_person(name)

在耗盡之前,這將迭代第一個集合,然后繼續進行下一個,依此類推。

感謝各位的閱讀,以上就是“Python實用的技巧有哪些”的內容了,經過本文的學習后,相信大家對Python實用的技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浏阳市| 芒康县| 高陵县| 塔城市| 辛集市| 高邮市| 富源县| 黑河市| 北宁市| 大埔县| 峨山| 江永县| 精河县| 阿坝县| 兴仁县| 马鞍山市| 平罗县| 邳州市| 南阳市| 会泽县| 巴塘县| 柳州市| 阳山县| 五指山市| 工布江达县| 满城县| 荃湾区| 会宁县| 新绛县| 客服| 元阳县| 九龙坡区| 利辛县| 东丽区| 临武县| 佛冈县| 扎鲁特旗| 加查县| 阿鲁科尔沁旗| 柘城县| 正安县|