自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這3個(gè)高級(jí)Python函數(shù),不能再被你忽略了!

開(kāi)發(fā) 后端
Python其實(shí)也可以帶來(lái)很多樂(lè)趣。重新審視一些一開(kāi)始并不被人們熟知的內(nèi)置函數(shù)并沒(méi)有想象中那么難,但為什么要這么做呢?今天,本文就來(lái)仔細(xì)分析3個(gè)在日常工作中或多或少都會(huì)用到、但是大部分時(shí)間都被忽略的Python函數(shù)。

Python其實(shí)也可以帶來(lái)很多樂(lè)趣。重新審視一些一開(kāi)始并不被人們熟知的內(nèi)置函數(shù)并沒(méi)有想象中那么難,但為什么要這么做呢?今天,本文就來(lái)仔細(xì)分析3個(gè)在日常工作中或多或少都會(huì)用到、但是大部分時(shí)間都被忽略的Python函數(shù)。

雖然它們可能不會(huì)節(jié)省大量的時(shí)間(如果了解了背后的具體邏輯),但是會(huì)使代碼看起來(lái)更簡(jiǎn)潔明了。也許這聽(tīng)起來(lái)沒(méi)什么大不了的,但長(zhǎng)久來(lái)看,可以使讀者受益匪淺。從第一個(gè)函數(shù)開(kāi)始吧! 

[[281478]]

1. map()

map()是一個(gè)內(nèi)置的Python函數(shù),用于將一個(gè)函數(shù)應(yīng)用于元素序列(如列表或字典)。它可能是進(jìn)行數(shù)據(jù)操作的最簡(jiǎn)單易讀的方法。

下面的示例旨在求出列表中數(shù)字的平方數(shù)。首先,必須明確所使用的函數(shù)。接下來(lái),筆者展示并對(duì)比了使用map()和不使用map()的方法,即python和非python的方法。 

  1. nums = [1, 2, 3, 4, 5]#   
  2.  
  3. this function will calculate square 
  4. def square_num(x):  
  5.     return x**2  
  6.  
  7. # non-pythonic approach 
  8. squares = [] 
  9. for num in nums: 
  10.     squares.append(square_num(num)) 
  11.   
  12. print('Non-Pythonic Approach: ', squares)  
  13.  
  14. # pythonic approach 
  15. x = map(square_num, nums) 
  16. print('Pythonic Approach: ', list(x)) 

輸出本質(zhì)上是相同的,但python方法明顯更加簡(jiǎn)潔,過(guò)程也不需要循環(huán)。

2. zip () 

[[281479]]

zip()是筆者最中意使用的函數(shù)之一。它允許用戶同時(shí)迭代兩個(gè)或多個(gè)列表。這個(gè)功能在處理日期和時(shí)間問(wèn)題時(shí)都十分有用。

例如,如果每天在工作中使用它的話,當(dāng)用戶就有第一個(gè)屬性時(shí)表示該事件的開(kāi)始時(shí)間,當(dāng)有第二個(gè)屬性時(shí)表示該事件的結(jié)束時(shí)間。進(jìn)一步想想,工作中總是需要計(jì)算事件之間的時(shí)間差的,而zip是迄今為止最簡(jiǎn)單的實(shí)現(xiàn)方法。

范例中創(chuàng)建了兩個(gè)包含數(shù)字的列表,任務(wù)是對(duì)相應(yīng)的元素求和: 

  1. first = [1, 3, 8, 4, 9] 
  2.  
  3. second = [2, 2, 7, 5, 8]  
  4.  
  5.  
  6. # Iterate over two or more list at the same time 
  7.  
  8. for x, y in zip(firstsecond): 
  9.  
  10.     print(x + y) 

這樣既簡(jiǎn)單又干凈。

3. filter()

filter()函數(shù)在某種程度上類似于map()函數(shù)——也是將一個(gè)函數(shù)應(yīng)用于某個(gè)序列,不同之處在于filter()只返回值為True的元素。

在如下的示例中,筆者創(chuàng)建了一個(gè)任意數(shù)字列表和一個(gè)函數(shù),如果該數(shù)字是偶數(shù),該函數(shù)將返回到True。同樣,筆者將演示如何以非python和python方式執(zhí)行該操作。 

  1. numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
  2.  
  3. # Will return true if input number is even 
  4. def even(x): 
  5.     return x % 2 == 0  
  6.  
  7. # non-pythonic approach 
  8. even_nums = [] 
  9. for num in numbers: 
  10.     if even(num): 
  11.         even_nums.append(num) 
  12.   
  13. print('Non-Pythonic Approach: ', even_nums)  
  14.  
  15. # pythonic approach 
  16. even_n = filter(even, numbers) 
  17. print('Pythonic Approach: ', list(even_n)) 

同樣,python方法更簡(jiǎn)潔、更可讀——這是讀者學(xué)會(huì)后會(huì)終身受益的東西。

 

責(zé)任編輯:華軒 來(lái)源: 讀芯術(shù)
相關(guān)推薦

2021-05-10 11:40:51

函數(shù)NumpyPython

2014-06-19 11:02:42

技術(shù)人員程序員

2020-09-25 16:20:21

Python內(nèi)置函數(shù)字符串

2021-01-19 06:05:28

Python數(shù)據(jù)分析編程語(yǔ)言

2019-07-18 10:49:15

GitHub軟件代碼

2012-11-14 17:38:13

Win 8

2011-03-30 08:49:34

WebjQuery

2024-06-24 09:00:00

2024-10-10 08:51:15

2020-04-10 20:56:32

Python數(shù)據(jù)技術(shù)

2024-10-25 16:07:39

Python函數(shù)

2020-10-14 15:00:38

Python 開(kāi)發(fā)編程語(yǔ)言

2020-06-09 08:00:52

Python開(kāi)發(fā)代碼

2020-10-22 14:10:34

VS CodePython開(kāi)發(fā)

2019-07-10 07:59:44

Python編程語(yǔ)言

2009-10-20 21:01:51

2022-05-30 08:02:51

事務(wù)日志MySQL數(shù)據(jù)庫(kù)

2024-12-10 08:20:44

2022-11-03 07:07:49

函數(shù)Pandascsv

2021-08-25 07:47:53

Pandas函數(shù)數(shù)據(jù)處理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)