日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python高阶函数教学_Python 简明教程 --- 16,Python 高阶函数

發布時間:2025/3/12 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python高阶函数教学_Python 简明教程 --- 16,Python 高阶函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于那些快速算法,我們總是可以拿一些速度差不多但是更容易理解的算法來替代它們。

—— Douglas Jones

目錄

高階函數一般以函數為參數。

本節我們介紹Python 中三個方便的高階函數,分別是:

map

reduce

filter

如果你了解過分布式系統框架---Hadoop,你應該知道map/reduce 的概念。

Python 中的map/reduce 函數與Hadoop 中的map/reduce 基本類似。

1,map 函數

在Python2 中,map 是一個函數。在Python3 中,map 是一個類:

>>> map

作用:將函數func 作用于可迭代對象iterable 中的每一個元素

原型:map(func, iterable) -> map object

參數 func:一個函數類型的參數,該函數接收一個參數,并返回一個值

參數 iterable:一個可迭代的對象

返回值:一個map 對象,同時一個迭代器

示例:

>>> m = map(lambda x: x * x, [1, 3, 5])

>>> m

>>> l = [i for i in m]

>>> l

[1, 9, 25]

參數func 可以是普通函數,也可以是匿名函數,我們這里使用了匿名函數lambda x: x * x,該函數接收一個參數,并返回該參數的平方。

可迭代對象是一個列表[1, 3, 5],列表中的每個元素,都將傳遞到匿名函數中,并對每一個元素計算平方后,將結果存儲到一個map 對象m 中。

為了查看m 中的值,我們使用列表推導式生成了一個列表l,可看到列表l 就是[1, 9, 25],就是[1, 3, 5] 中每個元素的平方。

這就是python3 中map 的基本使用方法。

2,reduce 函數

在Python3 中,reduce 函數被放在functools 模塊,使用時,要先從functools 模塊引入:

>>> from functools import reduce

作用:將函數func 作用于序列seq 中的元素,進行一系列的計算

原型:reduce(func, seq[, initial]) -> value

參數 func:這是一個函數類型的參數,該函數接收兩個參數,并返回一個值

參數 seq:一個序列

參數 initial:

當initial 存在時:reduce(func, [x1, x2, x3], initial) = func(func(func(initial, x1), x2), x3)

當initial 不存在時:reduce(func, [x1, x2, x3]) = func(func(x1, x2), x3)

返回值:返回計算結果

示例,當initial 存在時:

>>> reduce(lambda x, y : x * y, [1, 3, 5], 6)

90

# reduce(func, [1, 3, 5], 6)

# = func(func(func(6, 1), 3), 5)

# = ((6 * 1) * 3) * 5

# = 90

示例,當initial 不存在時:

>>> reduce(lambda x, y : x * y, [1, 3, 5])

15

# reduce(func, [1, 3, 5])

# = func(func(1, 3), 5)

# = (1 * 3) * 5

# = 15

3,filter 函數

在Python3 中,filter 是一個類:

>>> filter

作用:filter 用于對可迭代對象iterable 進行過濾,iterable 中的每一個元素會作為一個參數,傳遞到func 中

原型:filter(func, iterable) --> filter object

參數 func:這是一個函數類型的參數,該函數接受一個參數,返回一個bool 值

當func 返回True 時:對應的iterable 中的元素,會放在結果集中

當func 返回False 時:對應的iterable 中的元素,不會放在結果集中

返回值:一個filter 對象,同時也是一個迭代器

示例:

>>> f = filter(lambda x: len(x) == 2, ['dsf', 'df', 'ad', 'dfas', 'as'])

>>> f # 一個 filter 對象

>>> list(f) # 轉化為列表,方便查看

['df', 'ad', 'as']

(完。)

推薦閱讀:

歡迎關注作者公眾號,獲取更多技術干貨。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python高阶函数教学_Python 简明教程 --- 16,Python 高阶函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。