成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python很重要的5大功能,要是能早點了解就好了!

開發 后端
Python作為近幾年超級熱門的新興編程語言,其語言功能十分強大的特點,大家有目共睹,想必不用贅述。

 Python作為近幾年超級熱門的新興編程語言,其語言功能十分強大的特點,大家有目共睹,想必不用贅述。

[[312700]]

Python功能眾多,小芯曾用Python的交互式地圖和區塊鏈等功能創建了許許多多的應用程序,令人振奮。

但也正因其功能繁多,初學者一開始是很難掌握所有功能的。

即使你是一名從其他語言(比如C語言或MATLAB語言)轉換過來的程序員,用更加抽象的Python編寫代碼對你來說也絕對是一次不同的體驗。

但功能雖多,總有主次之分。

為了方便大家早點了解Python的一些大功能,小芯特別整理出了其中5大很重要的功能。

1. 生成器——內存效率

打算計算大量的結果,但同時又想避免同時分配所有結果所需內存,這時候會使用生成器。換句話說,它們即時生成值,但不會將先前生成的值存儲在內存中,因此只需要將其迭代一次。 生成器常用于讀取大型文件或使用關鍵字yield生成無窮序列。在大多數數據科學項目中,筆者發現它頗有用處。 

  1. def  gen(n):    # an infinite sequence  generator that generates integers >= n 
  2.     while True
  3.         yield n 
  4.         n += 1 
  5. G =  gen(3)     # starts at 3 
  6. print(next(G))  # 3 
  7. print(next(G))  # 4 
  8. print(next(G))  # 5 
  9. print(next(G))  # 6 

python-generator hosted with ❤ by GitHub

2. 虛擬環境——隔離

若讀完本文,只能記住其中一條,那應該是虛擬環境的使用。 

Python的應用程序經常使用很多不同的軟件包,而這些軟件包由具有復雜依賴關系的開發人員開發。不同的應用程序由一種特定的庫設置開發出來,其結果無法由其他版本的庫復制。沒有一種安裝程序可以滿足所有應用程序的要求。 

  1. conda create -n venv pippython=3.7  # select python version 
  2. source activate venv 
  3. ... 
  4. source deactivate 

因此,為每個應用程序創建單獨的虛擬環境venv至關重要,可以用 pip或conda完成。

3. 列表推導——緊致碼

很多人認為lambda、map和filter是每個初學者都應該學習的函數。雖然筆者認為這些函數值得關注,但是由于它們缺乏靈活性,大多時候不是特別有用。 Lambda是將一次性使用的函數生成為一行的方法。若函數被多次調用,性能就會降低。另一方面,map將一種函數應用于列表中的所有元素,而filter則會獲取集合中滿足用戶定義條件的元素子集。 

  1. add_func  = lambda z: z ** 2 
  2. is_odd =  lambda z: z%2 == 1 
  3. multiply  = lambda x,y: x*y 
  4. aList =  list(range(10)) 
  5. print(aList) 
  6. # [0, 1,  2, 3, 4, 5, 6, 7, 8, 9] 

python-lambda hosted with ❤ by GitHub

列表推導是一種簡潔靈活的方法,可從其他具有靈活表達式和條件的列表中創建新列表。它由一個帶有表達式或函數的方括號構成,只有當元素滿足特定條件時,才能應用于列表中的每個元素。它也可以通過嵌套來處理嵌套列表,這比用map和filter要靈活得多。 

  1. # Syntax of list comprehension 
  2. [ expression(x) for x in aList if optional_condition(x)]  
  1. print(list(map(add_func,  aList))) 
  2. print([x  ** 2 for x in aList]) 
  3. # [0, 1,  4, 9, 16, 25, 36, 49, 64, 81] 
  4. # [0, 1,  4, 9, 16, 25, 36, 49, 64, 81] 
  5. print(list(filter(is_odd,  aList))) 
  6. print([x  for x in aList if x%2 == 1]) 
  7. # [1, 3,  5, 7, 9] 
  8. # [1, 3,  5, 7, 9] 

python-list-comprehension hosted with ❤ by GitHub

4. 列表操作——循環列表

Python允許在aList[-1]== aList[len(aList)-1]中出現負索引。因此,可以通過調用aList[-2]等其他元素來獲取列表中的倒數第二個元素。

還可以用aList[start:end:step]語法對列表進行切片,該語法包括起始元素,但不包括終止元素。因此,調用aList[2:5]會得到[2, 3, 4]。也可以通過調用aList[::-1]來反轉列表,筆者發現這種技巧非常簡潔。 

列表也可以解壓縮為單獨的元素,或者解壓縮為元素和子列表,兩者混在一起,用星號標出。 

  1. a, b, c,  d = aList[0:4] 
  2. print(f'a  = {a}, b = {b}, c = {c}, d = owocgsc'
  3. # a = 0,  b = 1, c = 2, d = 3 
  4. a, *b,  c, d = aList 
  5. print(f'a  = {a}, b = {b}, c = {c}, d = owocgsc'
  6. # a = 0,  b = [1, 2, 3, 4, 5, 6, 7], c = 8, d = 9 

python-unpacking hosted with ❤ by GitHub

5. 壓縮(Zipping)和列舉(enumerate) ——for循環

壓縮 (Zip)函數創建了一種迭代程序,該程序可聚合來自多個列表的元素。它允許在for循環中并行遍歷列表并進行并行分類。用星號即可將其解壓縮。 

  1. numList  = [0, 1, 2] 
  2. engList  = ['zero''one''two'
  3. espList  = ['cero''uno''dos'
  4. print(list(zip(numList,  engList, espList))) 
  5. # [(0,  'zero''cero'), (1, 'one''uno'), (2, 'two''dos')] 
  6. for num,  eng, esp in zip(numList, engList, espList): 
  7.     print(f'{num} is {eng} in English and  {esp} in Spanish.'
  8. # 0 is  zero in English and cero in Spanish. 
  9. # 1 is  one in English and uno in Spanish. 
  10. # 2 is  two in English and dos in Spanish. 

python-zip-1 hosted with ❤ by GitHub 

  1. Eng =  list(zip(engList, espList, numList)) 
  2. Eng.sort()  # sort by engList 
  3. a, b, c  = zip(*Eng) 
  4. print(a) 
  5. print(b) 
  6. print(c) 
  7. #  ('one''two''zero'
  8. #  ('uno''dos''cero'
  9. # (1, 2,  0) 

乍一看,列舉(Enumerate) 可能有點嚇人,但是后來就會發現,在很多情況下使用列舉都很方便。它是一種經常用于for循環的自動計數器,因此無需在counter = 0 和counter += 1的情況下創建并初始化變量計數器。列舉(enumerate) 和壓縮(zip)是創建for循環時會用到的兩種功能很強大的工具。 

  1. upperCase  = ['A''B''C''D''E''F'
  2. lowerCase  = ['a''b''c''d''e''f'
  3. for i,  (upperlowerin enumerate(zip(upperCase, lowerCase), 1): 
  4.     print(f'{i}: {upper} and {lower}.'
  5. # 1: A  and a. 
  6. # 2: B  and b. 
  7. # 3: C  and c. 
  8. # 4: D  and d. 
  9. # 5: E  and e. 
  10. # 6: F  and f. 

python-enumerate hosted with ❤ by GitHub 

當然,除了這5種功能,Python還有許許多多其他好用的功能,歡迎大家給小芯留言自己最感興趣的功能。根據大家的留言,小芯會在下次Python文章中繼續為大家介紹更多大家感興趣的功能~

 

責任編輯:華軒 來源: 讀芯術
相關推薦

2023-12-19 15:47:57

Linux系統工具

2020-03-16 08:00:44

Nginx應用特點

2013-05-02 09:58:28

網吧路由器路由器功能

2010-01-18 17:58:49

軟交換技術

2012-10-16 09:25:33

Windows 8

2021-01-28 23:35:37

Python開發數據

2019-06-27 15:26:01

物聯網IOT技術

2009-05-07 11:28:48

CSS 3圓角多背景

2020-05-21 13:45:03

Java坑爹編程語言

2009-09-18 12:35:01

Red Hat紅帽linux

2009-01-08 09:46:44

2010-10-16 11:43:45

WindowsDEPASLR

2013-11-28 13:39:29

東軟創新解決方案

2011-05-24 15:12:15

Android

2021-02-15 15:20:08

架構程序員軟件

2014-07-15 11:25:18

2009-12-07 16:47:33

Windows 7Linux系統特征

2011-06-16 18:01:48

網站優化SEO

2023-02-15 08:00:00

2020-06-17 15:59:06

程序員技術開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 能看的av网站 | 亚洲精品一区二区三区蜜桃久 | 精品欧美乱码久久久久久 | 国产一级成人 | 久久久久高清 | 超碰成人免费 | 免费视频一区二区 | 国产a区 | 精品欧美一区二区三区 | 亚洲图片一区二区三区 | 中文字幕日韩欧美一区二区三区 | 亚洲欧美一区二区三区国产精品 | 在线国产一区二区三区 | 欧美成视频 | 国产精品视频网 | 操操日| 国产精品久久久久久久免费观看 | 欧美一区二区三区在线 | 性高湖久久久久久久久aaaaa | 午夜爽爽爽男女免费观看影院 | 国产精品海角社区在线观看 | 99久久精品国产毛片 | 97色在线视频 | 超碰最新在线 | 国产精品视频入口 | 欧美国产视频 | 精品国产一区二区三区久久久四川 | 8x国产精品视频一区二区 | 欧洲精品码一区二区三区免费看 | 精品欧美一区二区三区久久久 | 国产一区二区三区四区五区3d | 欧美日韩精品一区二区三区四区 | 国产精品久久久久久久久免费 | 天天操夜夜爽 | 欧美日韩国产在线观看 | 国产日韩欧美91 | 日韩一区av | 欧美视频区 | 婷婷色在线播放 | 亚洲 欧美 综合 | 国产一级视频在线观看 |