av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

你需要知道的5個(gè)Python技巧

Python有如此出色的支持網(wǎng)絡(luò),似乎一次可以解決很多問題。人們應(yīng)該認(rèn)識(shí)到這是正常現(xiàn)象。

站在用戶的角度思考問題,與客戶深入溝通,找到金牛網(wǎng)站設(shè)計(jì)與金牛網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋金牛地區(qū)。

但初學(xué)者可能會(huì)對(duì)此感到困惑。人們可以找到大量資源來解決基礎(chǔ)知識(shí)問題,但然而呢?要學(xué)習(xí)哪些資源以不斷進(jìn)步呢?

在這里,筆者列出了5個(gè)最有用的代碼段,這些代碼段進(jìn)一步提高了筆者的水平,使代碼變得更好。

下文將介紹如何在代碼中應(yīng)用這5個(gè)代碼段。

1. 列表推導(dǎo)式

有人或許以前聽說過這些。Python中的一種編碼模式十分常見,因此需要進(jìn)行修改。使用for循環(huán)創(chuàng)建列表是列表推導(dǎo)的價(jià)值所在。

列表推導(dǎo)式可讀且簡潔,也確實(shí)需要花費(fèi)一些時(shí)間來了解發(fā)生了什么。下面將深入研究是否可以解決這個(gè)問題。

創(chuàng)建列表時(shí)應(yīng)考慮列表推導(dǎo)式。列表推導(dǎo)式從一組方括號(hào)開始。先不管語法,以便展示兩種語言的相似之處

 
 
 
  1. list_comp = [expression for itemin items]

任務(wù)是要替換一個(gè)for循環(huán),該循環(huán)將項(xiàng)目添加到列表中。

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

注:

  • 調(diào)用名為new_list is calledt
  • for循環(huán)遍歷舊列表中的項(xiàng)目
  • 使用添加方法將item ** 2添加到新列表中

目前為止很簡單。

列表推導(dǎo)如下所示

 
 
 
  1. new_list = [item**2 for item inold_list]

注:

  • 將表達(dá)式item **2作為要添加到列表中的表達(dá)式,這首先出現(xiàn)在列表推導(dǎo)式中。
  • 之后的for循環(huán)是要迭代的循環(huán)
  • 將其括在方括號(hào)中并為其分配變量new_list意味著,為循環(huán)的每個(gè)項(xiàng)目將表達(dá)式item ** 2添加到new_list中。

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

請(qǐng)注意,可能會(huì)出現(xiàn)過度使用的情況!僅當(dāng)列表循環(huán)很簡單并且明確要?jiǎng)?chuàng)建列表時(shí),才會(huì)使用列表推導(dǎo)。

2.生成器表達(dá)式——節(jié)省內(nèi)存使用量

當(dāng)擁有大量數(shù)據(jù)集并需要對(duì)其進(jìn)行迭代或從中獲取結(jié)果,卻無法將所有數(shù)據(jù)存儲(chǔ)在內(nèi)存中時(shí),應(yīng)想到生成器函數(shù)。除了不返回而為關(guān)鍵字yield進(jìn)行切換操作,生成器函數(shù)非常像一個(gè)函數(shù)。

生成器函數(shù)創(chuàng)建了迭代器,而迭代器需要強(qiáng)制輸出它所擁有的值。它們不會(huì)在列表或集合中存儲(chǔ)對(duì)象。一次也只輸出一項(xiàng)。這稱為延遲循環(huán)。因此,讀取大文件時(shí)使用生成器。

 
 
 
  1. def gen(n):                           
  2.    while True:
  3.        yield n
  4.        n += 1                                                      G = gen(3)     # starts at 3
  5. print(next(G)) # 3
  6. print(next(G)) # 4
  7. print(next(G)) # 5
  8. print(next(G)) # 6

注:

  • 創(chuàng)建函數(shù)gen
  • Yield關(guān)鍵字存儲(chǔ)值n,一直保留到調(diào)用next()方法為止
  • 使用賦值運(yùn)算符,將1加到n
  • 這是一個(gè)無限循環(huán),并一直持續(xù)
  • 調(diào)用next()方法,它將繼續(xù)輸出值

現(xiàn)在,這些值不會(huì)被存儲(chǔ),只有在調(diào)用next()方法時(shí)才會(huì)跳出。生成器創(chuàng)建一個(gè)迭代器,然后依賴next()方法輸出值。

當(dāng)有一個(gè)大數(shù)據(jù)集并且想要流式傳輸數(shù)據(jù)而不會(huì)使內(nèi)存溢出時(shí),這將很有用。

3. 使用zip迭代兩個(gè)對(duì)象

經(jīng)常想迭代多個(gè)對(duì)象,以便能從每個(gè)對(duì)象中收集數(shù)據(jù)。Zip是允許執(zhí)行此操作的函數(shù)!如果需要迭代充分理解文件名及其對(duì)應(yīng)的鏈接,可以這樣做。

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

這將同時(shí)進(jìn)入兩個(gè)對(duì)象,返回一個(gè)元組以及每個(gè)元組中的對(duì)應(yīng)項(xiàng)。在循環(huán)中,將元組解壓為單獨(dú)的值file_name和link. zip()??梢愿鶕?jù)需要選擇任意數(shù)量的集合,但是當(dāng)最短的集合用盡時(shí)它將停止。

通過本文提及的列表推導(dǎo)式,Zip函數(shù)可用于迭代同一對(duì)象中的成對(duì)元素。

例如:

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

4. 計(jì)數(shù)器——生成對(duì)象的計(jì)數(shù)

來源:Pexels

計(jì)數(shù)器是字典的一個(gè)子類,其中對(duì)象的元素是鍵,而對(duì)象中項(xiàng)目的計(jì)數(shù)是值。它對(duì)計(jì)算對(duì)象的數(shù)量有效。訪問計(jì)數(shù)器時(shí)需要導(dǎo)入內(nèi)置的collections模塊。

假設(shè)要計(jì)算列表中所有出現(xiàn)的字符串。

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

輸出:

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

計(jì)數(shù)器類的優(yōu)點(diǎn)是可以對(duì)其進(jìn)行更新,并且可以使用字典API來訪問值。

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

輸出:

 
 
 
  1. a : 3
  2. b : 2
  3. c : 1
  4. d : 1
  5. e : 0

注:

  • 使用字符串“ abcdaab”將c分配給Counter子類。計(jì)數(shù)器類提供每個(gè)字符的單獨(dú)計(jì)數(shù)。c [item]可以像字典一樣被訪問。
  • for循環(huán),用于迭代字符串“abcde”,并為每個(gè)字符串分配letter。
  • 輸入字符串字符,打印可變letter并可以像字典一樣。每個(gè)字母的計(jì)數(shù)由c [letter]訪問。

5. 鏈接多個(gè)集合

來源:Pexels

如需一次迭代多個(gè)集合,則itertools模塊中的鏈接方法是實(shí)現(xiàn)這一目標(biāo)的好方法。

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

在耗盡之前,這將迭代第一個(gè)集合,然后繼續(xù)進(jìn)行下一個(gè),依此類推。

希望您喜歡這篇文章。


新聞標(biāo)題:你需要知道的5個(gè)Python技巧
URL地址:http://uogjgqi.cn/article/dpioiih.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流