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

Python中堪稱神仙的六個內置函數

開發 后端
今天分享的這6個內置函數,在使用 Python 進行數據分析或者其他復雜的自動化任務時非常方便。

人生苦短,菜鳥學Python!

我是菜鳥哥,今天,我們會一次性分享6個堪稱神仙的內置函數。在很多計算機書籍中,它們也通常作為高階函數來介紹。而我自己在日常工作中,經常使用它們來使代碼更快,更易于理解。

Lambda 函數

Lambda函數用于創建匿名函數,即沒有名稱的函數。它只是一個表達式,函數體比def簡單很多。當我們需要創建一個函數來執行單個操作并且可以在一行中編寫時,就可以用到匿名函數了。

lambda [arg1 [,arg2,.....argn]]:expression

lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。例如:

lambda x: x+2

如果我們也想像def定義的函數隨時調用,可以將lambda函數分配給這樣的函數對象。

add2 = lambda x: x+2
add2(10)

輸出結果:

利用Lambda函數,可以將代碼簡化很多,具體再舉個例子。

如上圖所示,結果列表newlist是使用lambda函數用一行代碼生成的。

Map 函數

map()函數會將一個函數映射到一個輸入列表的所有元素上。

map(function,iterable)

比如我們先創建了一個函數來返回一個大寫的輸入單詞,然后將此函數應有到列表colors中的所有元素。

def makeupper(word):
return word.upper()
colors=['red','yellow','green','black']
colors_uppercase=list(map(makeupper,colors))
colors_uppercase

輸出結果:

此外,我們還可以使用匿名函數lambda來配合map函數,這樣可以更加精簡。

colors=['red','yellow','green','black']
colors_uppercase=list(map(lambda x: x.upper(),colors))
colors_uppercase

如果我們不用Map函數的話,就需要使用for循環。

如上圖所示,在實際使用中Map函數會比for循環依次列表元素的方法快1.5倍。

Reduce函數

當需要對一個列表進行一些計算并返回結果時,reduce()是個非常有用的函數。舉個例子,當需要計算一個整數列表所有元素的乘積時,即可使用reduce函數實現。[1]

它與函數的最大的區別就是,reduce()里的映射函數(function)接收兩個參數,而map接收一個參數。

reduce(function, iterable[, initializer])

接下來我們用實例來演示reduce()的代碼執行過程。

from functools import reduce
def add(x, y) : # 兩數相加
return x + y
numbers = [1,2,3,4,5]
sum1 = reduce(add, numbers) # 計算列表和

得到結果sum1 = 15,其代碼執行過程如下方動圖所示。

▲代碼執行過程動圖

結合上圖我們會看到,reduce將一個相加函數add()作用在一個列表[1,2,3,4,5]上,映射函數接收了兩個參數,reduce()把結果繼續和列表的下一個元素做累加計算。

此外,我們同樣可以使用匿名函數lambda來配合reduce函數,這樣可以更加精簡。

from functools import reduce
numbers = [1,2,3,4,5]
sum2 = reduce(lambda x, y: x+y, numbers)

得到輸出sum2= 15,與之前結果保持一致。

需要注意:Python3.x開始reduce()已經被移到functools模塊里[2],如果我們要使用,需要用from functools import reduce導入.

enumerate 函數

enumerate()函數用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在for循環當中。它的語法如下所示:

enumerate(iterable, start=0)

它的兩個參數,一個是序列、迭代器或其他支持迭代對象;另一個是下標起始位置,默認情況從0開始,也可以自定義計數器的起始編號。

colors = ['red', 'yellow', 'green', 'black']
result = enumerate(colors)

如果我們有一個存放colors的顏色列表,運行后就會得到一個enumerate(枚舉) 對象。它可以直接在for循環中使用,也可以轉換為列表,具體用法如下所示。

for count, element in result:
print(f"迭代編號:{count},對應元素:{element}")

Zip 函數

zip()函數用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表[3]。

我們還是用兩個列表作為例子演示:

colors = ['red', 'yellow', 'green', 'black']
fruits = ['apple', 'pineapple', 'grapes', 'cherry']
for item in zip(colors,fruits):
print(item)

輸出結果:

當我們使用zip()函數時,如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。

prices =[100,50,120]
for item in zip(colors,fruits,prices):
print(item)

Filter 函數

filter()函數用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表,其語法如下所示[4]。

filter(function, iterable)

比如舉個例子,我們可以先創建一個函數來檢查單詞是否為大寫,然后使用filter()函數過濾出列表中的所有奇數:

def is_odd(n):
return n % 2 == 1
old_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_list = filter(is_odd, old_list)
print(newlist)

輸出結果:

今天分享的這6個內置函數,在使用 Python 進行數據分析或者其他復雜的自動化任務時非常方便。

責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2023-05-16 16:03:10

2021-10-27 10:15:25

Python新特性編程語言

2022-06-01 09:06:58

ES6數組函數

2013-11-01 09:51:39

2017-05-03 10:45:47

Python運行效率竅門

2024-10-11 10:00:00

Python編程

2022-03-26 09:32:54

Python編程映射

2022-11-15 16:54:54

2024-05-10 09:28:57

Python面向對象代碼

2022-04-04 21:33:48

進度條Python

2024-02-17 22:05:58

Python開發

2022-04-18 07:51:31

Web框架模板

2022-01-17 11:25:46

代碼Pythonfor

2022-06-28 10:17:23

安全職位首席信息安全官

2024-01-08 16:27:59

ES6函數

2023-09-07 11:53:05

2021-09-10 08:00:00

Python機器學習開發

2024-03-06 10:50:30

云計算云實例云提供商

2016-12-15 09:53:07

自學編程技巧

2016-07-25 18:10:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区中文字幕 | 国内自拍偷拍 | 欧美日韩在线一区二区 | 国产性生活一级片 | 日韩成人免费视频 | 日韩一区二区三区在线视频 | 91精品国产91久久综合桃花 | 久久久日韩精品一区二区三区 | 一区二区av | 成人在线观看网站 | 99国产精品久久久久 | 久久精品一区 | 亚洲啊v在线| 日韩成人精品一区二区三区 | 精品久久久久久久人人人人传媒 | 亚洲人成一区二区三区性色 | 视频在线一区 | 久久精品在线免费视频 | 欧美三级网站 | 在线观看视频91 | 国产一区二区三区在线视频 | 人人鲁人人莫人人爱精品 | 亚洲精品乱码8久久久久久日本 | 亚洲精品日韩综合观看成人91 | 成人做爰69片免费观看 | 久久精品这里 | 欧美三区在线观看 | 亚洲 欧美 激情 另类 校园 | 国产三级国产精品 | 国产精品久久久久久福利一牛影视 | 亚洲精品国产成人 | 九九免费在线视频 | 久久黄色精品视频 | 久久成人一区 | 可以看黄的视频 | 91国内精品| 在线观看国产 | 天天干b | 日本三级精品 | 精品国产91亚洲一区二区三区www | 亚洲久久久 |