欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中強(qiáng)大的函數(shù)map?filter?reduce使用詳解

 更新時(shí)間:2023年11月23日 10:13:27   作者:濤哥聊Python  
Python是一門功能豐富的編程語言,提供了許多內(nèi)置函數(shù),以簡化各種編程任務(wù),在Python中,map(),filter()和reduce()是一組非常有用的函數(shù),它們?cè)试S對(duì)可迭代對(duì)象進(jìn)行操作,從而實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換、篩選和累積等操作,本文將詳細(xì)介紹這三個(gè)函數(shù),包括它們的基本用法和示例代碼

1. map() 函數(shù)

map() 函數(shù)是Python的內(nèi)置函數(shù)之一,用于將一個(gè)函數(shù)應(yīng)用到可迭代對(duì)象(如列表、元組等)的每個(gè)元素上,然后返回一個(gè)包含結(jié)果的新可迭代對(duì)象。這是一種非常有效的方式來對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換。

基本用法

map() 函數(shù)的基本語法如下:

map(function, iterable, ...)
  • function:要應(yīng)用于可迭代對(duì)象的函數(shù)。
  • iterable:要進(jìn)行映射操作的可迭代對(duì)象。

map() 函數(shù)可以接受多個(gè)可迭代對(duì)象,但每個(gè)可迭代對(duì)象的元素?cái)?shù)量必須一致。它將 function 應(yīng)用于可迭代對(duì)象的對(duì)應(yīng)元素,并返回一個(gè)迭代器,其中包含了所有映射后的結(jié)果。

通過幾個(gè)示例來演示 map() 函數(shù)的用法。

示例 1:將列表中的元素轉(zhuǎn)為大寫

words = ["hello", "world", "python"]
capitalized_words = list(map(str.upper, words))
print(capitalized_words)

輸出:

['HELLO', 'WORLD', 'PYTHON']

在這個(gè)示例中,str.upper 函數(shù)被應(yīng)用到 words 列表的每個(gè)元素上,將它們轉(zhuǎn)為大寫形式。

示例 2:將兩個(gè)列表對(duì)應(yīng)元素相加

numbers1 = [1, 2, 3, 4]
numbers2 = [10, 20, 30, 40]
sums = list(map(lambda x, y: x + y, numbers1, numbers2))
print(sums)

輸出:

[11, 22, 33, 44]

在這個(gè)示例中,lambda 函數(shù)被用于將兩個(gè)列表的對(duì)應(yīng)元素相加,生成了一個(gè)新的列表。

2. filter() 函數(shù)

filter() 函數(shù)是Python的內(nèi)置函數(shù),用于篩選可迭代對(duì)象中滿足指定條件的元素,然后返回一個(gè)包含篩選結(jié)果的新可迭代對(duì)象。

基本用法

filter() 函數(shù)的基本語法如下:

filter(function, iterable)
  • function:用于篩選元素的函數(shù),該函數(shù)返回 True 或 False。
  • iterable:要進(jìn)行篩選操作的可迭代對(duì)象。

filter() 函數(shù)將 function 應(yīng)用于 iterable 中的每個(gè)元素,并保留那些使 function 返回 True 的元素,生成一個(gè)包含篩選結(jié)果的迭代器。

下面是一些示例,演示了 filter() 函數(shù)的用法。

示例 1:篩選出偶數(shù)

numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)

輸出:

[2, 4, 6, 8]

在這個(gè)示例中,lambda 函數(shù)用于檢查每個(gè)元素是否為偶數(shù),然后 filter() 函數(shù)篩選出了所有滿足條件的元素。

示例 2:篩選出長度大于等于 5 的字符串

words = ["apple", "banana", "cherry", "date", "elderberry"]
long_words = list(filter(lambda x: len(x) >= 5, words))
print(long_words)

輸出:

['apple', 'banana', 'cherry', 'elderberry']

在這個(gè)示例中,lambda 函數(shù)用于檢查每個(gè)字符串的長度是否大于等于 5,然后 filter() 函數(shù)篩選出了所有滿足條件的字符串。

3. reduce() 函數(shù)

reduce() 函數(shù)是Python的內(nèi)置函數(shù),用于對(duì)可迭代對(duì)象中的元素進(jìn)行累積操作,從左到右依次應(yīng)用指定的函數(shù),將結(jié)果匯總為一個(gè)值。這在某些情況下非常有用,例如計(jì)算累積值或查找最大/最小值。

基本用法

reduce() 函數(shù)的基本語法如下:

functools.reduce(function, iterable[, initializer])
  • function:用于累積操作的函數(shù),該函數(shù)接受兩個(gè)參數(shù),并返回一個(gè)結(jié)果。
  • iterable:要進(jìn)行累積操作的可迭代對(duì)象。
  • initializer(可選):累積的初始值。

reduce() 函數(shù)將 function 應(yīng)用于 iterable 中的元素,從左到右依次累積,將

結(jié)果傳遞給下一個(gè)元素。如果提供了 initializer,它將作為累積的初始值。否則,iterable 的第一個(gè)元素將作為初始值。

下面是一些示例,演示了 reduce() 函數(shù)的用法。

示例 1:計(jì)算列表中所有元素的累積乘積

from functools import reduce

numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product)

輸出:

120

在這個(gè)示例中,lambda 函數(shù)用于計(jì)算累積乘積。reduce() 函數(shù)將該函數(shù)應(yīng)用于列表中的每個(gè)元素,從左到右累積。

示例 2:查找列表中的最大值

from functools import reduce

numbers = [42, 17, 8, 96, 23]
max_value = reduce(lambda x, y: x if x > y else y, numbers)
print(max_value)

輸出:

96

在這個(gè)示例中,lambda 函數(shù)用于比較兩個(gè)值,并返回較大的值。reduce() 函數(shù)將該函數(shù)應(yīng)用于列表中的每個(gè)元素,從左到右查找最大值。

總結(jié)

map()filter(), 和 reduce() 是Python中強(qiáng)大的函數(shù),它們提供了一種便捷的方式來處理可迭代對(duì)象中的元素。這些函數(shù)在許多編程任務(wù)中都非常有用,包括數(shù)據(jù)轉(zhuǎn)換、篩選和累積操作。熟練掌握這些函數(shù)可以讓Python編程變得更加高效和簡潔。

以上就是Python中強(qiáng)大的函數(shù)map filter reduce使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Python map filter reduce函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • scrapy與selenium結(jié)合爬取數(shù)據(jù)(爬取動(dòng)態(tài)網(wǎng)站)的示例代碼

    scrapy與selenium結(jié)合爬取數(shù)據(jù)(爬取動(dòng)態(tài)網(wǎng)站)的示例代碼

    這篇文章主要介紹了scrapy與selenium結(jié)合爬取數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python編寫一個(gè)GUI倒計(jì)時(shí)器

    python編寫一個(gè)GUI倒計(jì)時(shí)器

    這篇文章主要為大家詳細(xì)介紹了python編寫一個(gè)GUI倒計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Python如何定義有默認(rèn)參數(shù)的函數(shù)

    Python如何定義有默認(rèn)參數(shù)的函數(shù)

    這篇文章主要介紹了Python如何定義有默認(rèn)參數(shù)的函數(shù),幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • python編程使用PyQt制作預(yù)覽窗口游戲中的小地圖

    python編程使用PyQt制作預(yù)覽窗口游戲中的小地圖

    這篇文章主要為大家介紹了python使用PyQt制作預(yù)覽窗口游戲中的小地圖實(shí)現(xiàn)示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Python實(shí)現(xiàn)基于C/S架構(gòu)的聊天室功能詳解

    Python實(shí)現(xiàn)基于C/S架構(gòu)的聊天室功能詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)基于C/S架構(gòu)的聊天室功能,結(jié)合實(shí)例形式詳細(xì)分析了Python實(shí)現(xiàn)聊天室功能的客戶端與服務(wù)器端相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • 詳解如何使用Pandas創(chuàng)建有效且可復(fù)制的代碼

    詳解如何使用Pandas創(chuàng)建有效且可復(fù)制的代碼

    Pandas作為一種多功能和強(qiáng)大的工具而屹立不倒,其直觀的數(shù)據(jù)結(jié)構(gòu)和廣泛的功能使其成為無數(shù)數(shù)據(jù)專業(yè)人士和愛好者的首選,本文將使用Pandas創(chuàng)建有效且可復(fù)制的代碼,感興趣的可以了解下
    2024-11-11
  • python中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法

    python中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法

    這篇文章主要介紹了python中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法,代碼很簡單,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • python如何制作英文字典

    python如何制作英文字典

    這篇文章主要為大家詳細(xì)介紹了python如何制作英文字典,添加單詞的意思,查詢,退出,建立單詞文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python批量telnet檢測IP地址的端口是否開放

    python批量telnet檢測IP地址的端口是否開放

    本文主要介紹了python批量telnet檢測IP地址的端口是否開放,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • python封裝json格式字符串并處理單雙引號(hào)問題

    python封裝json格式字符串并處理單雙引號(hào)問題

    大家好,本篇文章主要講的是python封裝json格式字符串并處理單雙引號(hào)問題,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02

最新評(píng)論