這篇文章主要介紹“Python重要的功能有哪些”,在日常操作中,相信很多人在Python重要的功能有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ython重要的功能有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
為大荔等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及大荔網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、大荔網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
1. 生成器——內(nèi)存效率
打算計(jì)算大量的結(jié)果,但同時(shí)又想避免同時(shí)分配所有結(jié)果所需內(nèi)存,這時(shí)候會(huì)使用生成器。換句話說(shuō),它們即時(shí)生成值,但不會(huì)將先前生成的值存儲(chǔ)在內(nèi)存中,因此只需要將其迭代一次。 生成器常用于讀取大型文件或使用關(guān)鍵字yield生成無(wú)窮序列。在大多數(shù)數(shù)據(jù)科學(xué)項(xiàng)目中,筆者發(fā)現(xiàn)它頗有用處。
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
2. 虛擬環(huán)境——隔離
若讀完本文,只能記住其中一條,那應(yīng)該是虛擬環(huán)境的使用。
Python的應(yīng)用程序經(jīng)常使用很多不同的軟件包,而這些軟件包由具有復(fù)雜依賴(lài)關(guān)系的開(kāi)發(fā)人員開(kāi)發(fā)。不同的應(yīng)用程序由一種特定的庫(kù)設(shè)置開(kāi)發(fā)出來(lái),其結(jié)果無(wú)法由其他版本的庫(kù)復(fù)制。沒(méi)有一種安裝程序可以滿足所有應(yīng)用程序的要求。
conda create -n venv pippython=3.7 # select python version source activate venv ... source deactivate
因此,為每個(gè)應(yīng)用程序創(chuàng)建單獨(dú)的虛擬環(huán)境venv至關(guān)重要,可以用 pip或conda完成。
3. 列表推導(dǎo)——緊致碼
很多人認(rèn)為lambda、map和filter是每個(gè)初學(xué)者都應(yīng)該學(xué)習(xí)的函數(shù)。雖然筆者認(rèn)為這些函數(shù)值得關(guān)注,但是由于它們?nèi)狈`活性,大多時(shí)候不是特別有用。 Lambda是將一次性使用的函數(shù)生成為一行的方法。若函數(shù)被多次調(diào)用,性能就會(huì)降低。另一方面,map將一種函數(shù)應(yīng)用于列表中的所有元素,而filter則會(huì)獲取集合中滿足用戶(hù)定義條件的元素子集。
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) 4 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
列表推導(dǎo)是一種簡(jiǎn)潔靈活的方法,可從其他具有靈活表達(dá)式和條件的列表中創(chuàng)建新列表。它由一個(gè)帶有表達(dá)式或函數(shù)的方括號(hào)構(gòu)成,只有當(dāng)元素滿足特定條件時(shí),才能應(yīng)用于列表中的每個(gè)元素。它也可以通過(guò)嵌套來(lái)處理嵌套列表,這比用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]
4. 列表操作——循環(huán)列表
Python允許在aList[-1]== aList[len(aList)-1]中出現(xiàn)負(fù)索引。因此,可以通過(guò)調(diào)用aList[-2]等其他元素來(lái)獲取列表中的倒數(shù)第二個(gè)元素。
還可以用aList[start:end:step]語(yǔ)法對(duì)列表進(jìn)行切片,該語(yǔ)法包括起始元素,但不包括終止元素。因此,調(diào)用aList[2:5]會(huì)得到[2, 3, 4]。也可以通過(guò)調(diào)用aList[::-1]來(lái)反轉(zhuǎn)列表,筆者發(fā)現(xiàn)這種技巧非常簡(jiǎn)潔。
列表也可以解壓縮為單獨(dú)的元素,或者解壓縮為元素和子列表,兩者混在一起,用星號(hào)標(biāo)出。
a, b, c, d = aList[0:4] print(f'a = {a}, b = , c = {c}, d = fpvxeip') # a = 0, b = 1, c = 2, d = 3 a, *b, c, d = aList print(f'a = {a}, b = , c = {c}, d = mfmjvxu') # a = 0, b = [1, 2, 3, 4, 5, 6, 7], c = 8, d = 9
5. 壓縮(Zipping)和列舉(enumerate) ——for循環(huán)
壓縮 (Zip)函數(shù)創(chuàng)建了一種迭代程序,該程序可聚合來(lái)自多個(gè)列表的元素。它允許在for循環(huán)中并行遍歷列表并進(jìn)行并行分類(lèi)。用星號(hào)即可將其解壓縮。
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)
乍一看,列舉(Enumerate) 可能有點(diǎn)嚇人,但是后來(lái)就會(huì)發(fā)現(xiàn),在很多情況下使用列舉都很方便。它是一種經(jīng)常用于for循環(huán)的自動(dòng)計(jì)數(shù)器,因此無(wú)需在counter = 0 和counter += 1的情況下創(chuàng)建并初始化變量計(jì)數(shù)器。列舉(enumerate) 和壓縮(zip)是創(chuàng)建for循環(huán)時(shí)會(huì)用到的兩種功能很強(qiáng)大的工具。
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.
到此,關(guān)于“Python重要的功能有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)題目:Python重要的功能有哪些
URL網(wǎng)址:http://aaarwkj.com/article4/ijhjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站改版、ChatGPT、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)