日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python中非常重要的5個(gè)特性

Python 是近十年來興起的編程語言,并且被證明是一種非常強(qiáng)大的語言。我用 Python 構(gòu)建了很多應(yīng)用程序,從交互式地圖到區(qū)塊鏈。

創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元承德做網(wǎng)站,已為上家服務(wù),為承德各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

Python 是近十年來興起的編程語言,并且被證明是一種非常強(qiáng)大的語言。我用 Python 構(gòu)建了很多應(yīng)用程序,從交互式地圖到區(qū)塊鏈。Python 有很多特性,初學(xué)者很難一開始就掌握所有的特性。 即使你是一個(gè)從其他語言(如 C 或 MATLAB)轉(zhuǎn)換過來的程序員,用更高抽象級(jí)別的 Python 編寫代碼絕對(duì)是另一種體驗(yàn)?;仡櫰饋?,有很多 Python 特性如果我能早點(diǎn)知道,肯定能少走不少彎路?,F(xiàn)在我想要重點(diǎn)介紹其中五個(gè)最重要的特性。

1.理解 List——壓縮代碼

很多人會(huì)將 lambda、map 和 filter 作為 Python 的「技巧」,每個(gè)初學(xué)者都應(yīng)該學(xué)習(xí)這些技巧。雖然我相信它們是我們應(yīng)該掌握的特性,但我發(fā)現(xiàn)由于缺乏靈活性,它們?cè)诖蠖鄶?shù)時(shí)候并不特別有用。 Lambda 是一種在一行中組合函數(shù)以供一次性使用的方法。如果函數(shù)被多次調(diào)用,性能將受到影響。另一方面,map 將函數(shù)應(yīng)用于列表中的所有元素,而 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]    

Anastase Maragos 發(fā)表在 Unsplash 雜志上的照片 列表理解是一種簡潔而靈活的方法,可以使用靈活的表達(dá)式和條件從其他列表創(chuàng)建列表。它是由方括號(hào)構(gòu)造的,它有一個(gè)表達(dá)式或一個(gè)函數(shù),只有當(dāng)元素滿足某個(gè)條件時(shí),該表達(dá)式或函數(shù)才應(yīng)用于列表中的每個(gè)元素。它還可以嵌套來處理嵌套列表,并且比使用 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.列表循環(huán)

Python 允許使用負(fù)索引,其中 Altruts [-1]== Altrue[LeN(Listor)-1 ]。因此,我們可以通過調(diào)用 a list[-2] 等獲得列表中的倒數(shù)第二個(gè)元素。 我們還可以使用語法 aList[startstep] 對(duì)列表進(jìn)行切片,其中包含起始元素,但不包含結(jié)束元素。因此,aList[2:5] 的結(jié)果是 [2,3,4]。我們也可以通過調(diào)用 a list[::-1] 來反轉(zhuǎn)列表,我發(fā)現(xiàn)這種技術(shù)非常優(yōu)雅。

Martin Shreder 發(fā)表在 Unsplash 雜志上的照片 列表也可以分解成單獨(dú)的元素,或者使用星號(hào)將元素和子列表混合。

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

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

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

a, *b, c, d = aList

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

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

3.壓縮和枚舉:for 循環(huán)

Zip 函數(shù)創(chuàng)建一個(gè)迭代器,該迭代器聚合來自多個(gè)列表的元素。它允許在 for 循環(huán)中并行遍歷列表并并行排序。它可以用星號(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)

5 個(gè)越早知道越好的 Python 特性 Erol Ahmed 發(fā)表在 Unsplash 雜志上的照片 枚舉一開始可能看起來有點(diǎn)嚇人,但在許多情況下它是非常方便的。它是一個(gè)經(jīng)常在 for 循環(huán)中使用的自動(dòng)計(jì)數(shù)器,不需要在 for 循環(huán)中創(chuàng)建和初始化計(jì)數(shù)器變量 by counter=0 和 counter+=1。枚舉和 zip 是構(gòu)造 for 循環(huán)時(shí)最強(qiáng)大的兩個(gè)工具。

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.生成器:內(nèi)存效率

當(dāng)我們打算對(duì)大量數(shù)據(jù)進(jìn)行計(jì)算,但希望避免同時(shí)分配所有結(jié)果所需的內(nèi)存時(shí),會(huì)使用生成器。換句話說,它們會(huì)動(dòng)態(tài)生成值,而不會(huì)將以前的值存儲(chǔ)在內(nèi)存中,因此我們只能對(duì)它們進(jìn)行一次迭代。 它們通常用于讀取大文件或使用關(guān)鍵字 yield 生成無限序列。我經(jīng)常發(fā)現(xiàn)它在我的大多數(shù)數(shù)據(jù)科學(xué)項(xiàng)目中很有用。

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.虛擬環(huán)境:isolation

如果你讀完本文中只記得其中一條,那么應(yīng)該是虛擬環(huán)境的使用。

Matthew Kwong 發(fā)布在 Unsplash 上的照片 Python 應(yīng)用程序通常使用很多不同的包,這些包來不同的開發(fā)人員,具有復(fù)雜的依賴關(guān)系。不同的應(yīng)用程序是使用特定的庫設(shè)置開發(fā)的,其中的結(jié)果不能使用其他庫版本復(fù)制。不存在一次安裝就滿足所有應(yīng)用要求的情況。

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

因此,為每個(gè)應(yīng)用程序創(chuàng)建獨(dú)立的獨(dú)立虛擬環(huán)境 venv 是非常重要的,這可以使用 pip 或 conda 來完成。


分享文章:Python中非常重要的5個(gè)特性
URL分享:http://www.5511xx.com/article/dpepcoe.html