這篇文章主要講解了“Python實用的技巧有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python實用的技巧有哪些”吧!
十余年的梅列網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整梅列建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“梅列網(wǎng)站設計”,“梅列網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
1. 列表推導式
有人或許以前聽說過這些。Python中的一種編碼模式十分常見,因此需要進行修改。使用for循環(huán)創(chuàng)建列表是列表推導的價值所在。
列表推導式可讀且簡潔,也確實需要花費一些時間來了解發(fā)生了什么。下面將深入研究是否可以解決這個問題。
創(chuàng)建列表時應考慮列表推導式。列表推導式從一組方括號開始。先不管語法,以便展示兩種語言的相似之處
list_comp = [expression for itemin items]
任務是要替換一個for循環(huán),該循環(huán)將項目添加到列表中。
new_list = [] for item in old_list: new_list.append(item**2)
注:
調用名為new_list is calledt
for循環(huán)遍歷舊列表中的項目
使用添加方法將item ** 2添加到新列表中
目前為止很簡單。
列表推導如下所示
new_list = [item**2 for item inold_list]
注:
將表達式item **2作為要添加到列表中的表達式,這首先出現(xiàn)在列表推導式中。
之后的for循環(huán)是要迭代的循環(huán)
將其括在方括號中并為其分配變量new_list意味著,為循環(huán)的每個項目將表達式item ** 2添加到new_list中。
沒有附加方法或是不需要,一行代碼正適合!為了選擇要添加的內容,甚至可以添加條件語句。此功能還擴展到集合和詞典!甚至可以使用嵌套的for循環(huán)編寫列表推導式!
請注意,可能會出現(xiàn)過度使用的情況!僅當列表循環(huán)很簡單并且明確要創(chuàng)建列表時,才會使用列表推導。
2.生成器表達式——節(jié)省內存使用量
當擁有大量數(shù)據(jù)集并需要對其進行迭代或從中獲取結果,卻無法將所有數(shù)據(jù)存儲在內存中時,應想到生成器函數(shù)。除了不返回而為關鍵字yield進行切換操作,生成器函數(shù)非常像一個函數(shù)。
生成器函數(shù)創(chuàng)建了迭代器,而迭代器需要強制輸出它所擁有的值。它們不會在列表或集合中存儲對象。一次也只輸出一項。這稱為延遲循環(huán)。因此,讀取大文件時使用生成器。
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
注:
創(chuàng)建函數(shù)gen
Yield關鍵字存儲值n,一直保留到調用next()方法為止
使用賦值運算符,將1加到n
這是一個無限循環(huán),并一直持續(xù)
調用next()方法,它將繼續(xù)輸出值
現(xiàn)在,這些值不會被存儲,只有在調用next()方法時才會跳出。生成器創(chuàng)建一個迭代器,然后依賴next()方法輸出值。
當有一個大數(shù)據(jù)集并且想要流式傳輸數(shù)據(jù)而不會使內存溢出時,這將很有用。
3. 使用zip迭代兩個對象
經(jīng)常想迭代多個對象,以便能從每個對象中收集數(shù)據(jù)。Zip是允許執(zhí)行此操作的函數(shù)!如果需要迭代充分理解文件名及其對應的鏈接,可以這樣做。
for file_name, link in zip(names, links): print(file_name, link)
這將同時進入兩個對象,返回一個元組以及每個元組中的對應項。在循環(huán)中,將元組解壓為單獨的值file_name和link. zip()??梢愿鶕?jù)需要選擇任意數(shù)量的集合,但是當最短的集合用盡時它將停止。
通過本文提及的列表推導式,Zip函數(shù)可用于迭代同一對象中的成對元素。
例如:
differences = [next_el - elt for el, next_el in zip(items, items[1:])
4. 計數(shù)器——生成對象的計數(shù)
計數(shù)器是字典的一個子類,其中對象的元素是鍵,而對象中項目的計數(shù)是值。它對計算對象的數(shù)量有效。訪問計數(shù)器時需要導入內置的collections模塊。
假設要計算列表中所有出現(xiàn)的字符串。
import collections counts = Counter([ Fred , Samantha , Jean-Claude , Samantha ]) print(counts)
輸出:
Counter({ Samantha : 2, Fred :1, Jean-Claude : 1})
計數(shù)器類的優(yōu)點是可以對其進行更新,并且可以使用字典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子類。計數(shù)器類提供每個字符的單獨計數(shù)。c [item]可以像字典一樣被訪問。
for循環(huán),用于迭代字符串“abcde”,并為每個字符串分配letter。
輸入字符串字符,打印可變letter并可以像字典一樣。每個字母的計數(shù)由c [letter]訪問。
5. 鏈接多個集合
如需一次迭代多個集合,則itertools模塊中的鏈接方法是實現(xiàn)這一目標的好方法。
for name in itertools.chain(first_name_list, second_name_list): create_person(name)
在耗盡之前,這將迭代第一個集合,然后繼續(xù)進行下一個,依此類推。
感謝各位的閱讀,以上就是“Python實用的技巧有哪些”的內容了,經(jīng)過本文的學習后,相信大家對Python實用的技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
當前題目:Python實用的技巧有哪些
本文來源:http://www.muchs.cn/article20/jsoejo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、定制網(wǎng)站、企業(yè)網(wǎng)站制作、服務器托管、響應式網(wǎng)站、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)