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

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

開發 后端
Python標準庫是一個巨大的野獸,它的生態系統絕對是龐大的。雖然Python模塊可能有200萬千兆字節,好在有一些使用技巧存在,我們可以用Python中與科學計算相關的標準庫和包來學習。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

Python看起來似乎是一種任何人都可以學習的簡單語言,但實際上,學會不等于精通,Python的“后勁兒”超乎我們的想象,它容易入門卻很難掌握。在Python中,一個通常有多種處理方法,但很容易出錯的地方很多;或者僅僅因為不知道模塊的存在,你就得重新創建標準庫,這很浪費時間。

Python標準庫是一個巨大的野獸,它的生態系統絕對是龐大的。雖然Python模塊可能有200萬千兆字節,好在有一些使用技巧存在,我們可以用Python中與科學計算相關的標準庫和包來學習。

[[332288]]

1. 反轉字符串

雖然看似是很基礎的操作,但是用char循環來反轉字符串可能會非常繁瑣麻煩。幸運的是,Python包含了一個簡單的內置操作來準確地執行這個任務,我們只需訪問字符串上的索引::-1。

  1. a = "!dlrow olleH" 
  2. backward = a[::-1] 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

2. Dims作為變量

在大多數語言中,為了將數組放入一組變量中需迭代循環值,或按位置訪問暗點,如下所示:

  1. firstdim = array[1] 

然而,在Python中有一種更好更快的方法。為了將一列值改為變量,可以簡單地將變量名設置為與數組長度相同的數組:

  1. array = [5, 10, 15, 20] 
  2. five, ten, fift, twent = array 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

3. 生成器的next()迭代

在編程中的大多數正常情況下,可以訪問一個索引,并使用計數器獲取位置數字,計數器將只是一個值,添加到:

  1. array1 = [5, 10, 15, 20] 
  2. array2 = (x ** 2 for x in range(10)) 
  3. counter = 0for i in array1:# This code wouldn't work because 'i' is not in array2. 
  4.    # i = array2[i] 
  5.     i = array2[counter] 
  6. #    ^^^ This code would because we areaccessing the position of i 

我們也可以用next()代替它。Next使用一個迭代器,該迭代器將當前位置存儲在內存中,并在后臺迭代列表:

  1. g = (x ** 2 for x in range(10)) 
  2. print(next(g)) 
  3. print(next(g)) 

4. 智能拆包

迭代地解壓值可能會非常耗費時力,Python中有幾種不錯的方法可以用來解壓列表的方法。其中一個是*,它將填充未分配的值并將它們添加到變量名下的新列表中。

  1. a, *b, c = [1, 2, 3, 4, 5] 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

5. 列舉

不了解列舉那可不太行。列舉可以獲取列表中某些值的索引,在數據科學中使用數組而不是數據幀時,這就特別有用:

  1. for i,w in enumerate(array): 
  2.     print(i,w) 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

6. 命名切片

Python中,分割列表非常簡單,各式各樣優秀工具都能做到。特別好的一點是,它還能夠給列表命名,這對于Python中的線性代數特別有用:

  1. a = [0, 1, 2, 3, 4, 5] 
  2. LASTTHREE = slice(-3, None) 
  3. slice(-3, None, None) 
  4. print(a[LASTTHREE]) 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步 

7. Itertools

如果深入學習Python,那你肯定要熟悉itertools。itertools是標準庫中的一個模塊,它可以不斷地解決迭代問題。它不僅使編寫復雜循環大幅度變容易,而且還使代碼更簡潔快速。有數百種Itertools的使用示例,來看看其中一個:

  1. c = [[1, 2], [3, 4], [5, 6]] 
  2. # Let's convert this matrix to a 1 dimensional list. 
  3. import itertools as it 
  4. newlist = list(it.chain.from_iterable(c)) 

8. 分組相鄰列表

在for循環中,對相鄰循環進行分組當然很容易,特別是使用zip(),但這肯定不是最好的方法。為了更輕松便捷地實現這一點,可以用zip編寫一個lambda表達式,該表達式將對相鄰列表進行分組,如下所示:

  1. a = [1, 2, 3, 4, 5, 6] 
  2. group_adjacent = lambda a, k: zip(*([iter(a)] * k)) 
  3. group_adjacent(a, 3) [(1, 2, 3), (4, 5, 6)] 
  4. group_adjacent(a, 2) [(1, 2), (3, 4), (5, 6)] 
  5. group_adjacent(a, 1) 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

9. 計數器

集合也是模塊中很好的標準庫,這里向大家介紹的是集合中的計數器。使用計數器,可以輕松獲得一個列表的計數。這對于獲取數據中的值總數、數據的空計數,以及查看數據的唯一值非常有用。

“為什么不直接使用Pandas呢?”使用Pandas來實現這一點無疑會困難得多,而且這只是在部署算法時需要添加到虛擬環境中的另一個依賴項。另外,Python中的計數器類型有很多Pandas系列沒有的特性,這使其在某些情況下更有用。

  1. A = collections.Counter([1, 1, 2,2, 3, 3, 3, 3, 4, 5, 6, 7]) 
  2. A Counter({3: 4, 1: 2, 2: 2, 4: 1, 5: 1, 6: 1, 7: 1}) 
  3. A.most_common(1) [(3, 4)] 
  4. A.most_common(3) [(3, 4), (1, 2), (2, 2)] 

10. 出隊

如下所示,出隊能讓代碼非常整潔:

  1. import collections 
  2. Q = collections.deque() 
  3. Q.append(1) 
  4. Q.appendleft(2) 
  5. Q.extend([3, 4]) 
  6. Q.extendleft([5, 6]) 
  7. Q.pop() 
  8. Q.popleft() 
  9. Q.rotate(3) 
  10. Q.rotate(-3) 
  11. print(Q) 

Python不像想象那么簡單!學會這些小技巧,離精通更進一步

這些是筆者一直愛用的Python技巧,都非常通用和實用,實踐中總有機會能用到。Python的標準庫函數工具箱變得越來越多樣,還有很多筆者也沒聽說過的工具。學無止境,這多么令人興奮! 

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2010-03-15 09:40:19

Windows 8研發

2020-09-22 10:49:12

大數據旅游技術

2009-03-31 11:12:59

萬兆以太網

2015-05-27 14:38:14

戴爾云計算

2014-11-28 13:37:30

DCN無線

2021-04-27 11:20:20

機器學習骨科醫療

2016-09-07 15:38:13

綠色數據中心能源消耗

2017-12-27 10:40:13

UnixLinux習慣

2023-04-12 16:12:09

2015-07-03 11:07:34

程序猿作法

2014-11-13 15:54:23

Imperva亞馬遜

2021-01-29 17:57:32

存儲

2022-07-27 22:15:20

HarmonyOS鴻蒙鴻蒙系統

2011-09-16 11:38:34

AVGQQ電腦管家

2023-12-18 13:06:25

腦機接口AI

2021-07-23 10:27:51

量子計算機芯片超算

2011-08-02 14:31:16

激光打印機用戶體驗
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧洲一级毛片 | 国产中文一区二区三区 | 欧美日韩亚洲国产 | 国产黄色大片在线观看 | 国产精品国产精品国产专区不卡 | 中文字幕二区 | 婷婷中文字幕 | 青青草中文字幕 | 夜久久 | 亚洲一区二区三区 | 久久久久久久久淑女av国产精品 | 黄色片网站在线观看 | 午夜免费观看 | 久久久久国产一级毛片高清网站 | av激情在线| 久久久入口 | 99视频网| 91久久久久久久久久久 | 久久av一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 国产精品一区二区久久久久 | www.啪啪.com| 麻豆hd| 欧美精品一二区 | 91在线观看免费 | 欧美aⅴ片 | 亚洲黄色av| 亚洲精品一区二区三区中文字幕 | 精品www | 91精品国产91久久综合桃花 | 国产精品a久久久久 | 伊人手机在线视频 | www精品 | 国产在线精品一区二区 | 国产一区影院 | 国产精品乱码一二三区的特点 | 国产成人一区二区三区久久久 | 欧美视频免费 | 欧美精品网 | 亚洲欧美在线观看 | 免费三级av |