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

Python3中map(),reduce(),filter()的詳細(xì)用法

 更新時間:2022年08月04日 11:34:34   作者:Python熱愛者  
這篇文章主要介紹了Python3中map(),reduce(),filter()的詳細(xì)用法,Python3中的map()、reduce()、filter()?這3個一般是用于對序列進行操作的內(nèi)置函數(shù),它們經(jīng)常需要與?匿名函數(shù)?lambda?聯(lián)合起來使用

前言

Python3中的map()、reduce()、filter() 這3個一般是用于對序列進行操作的內(nèi)置函數(shù),它們經(jīng)常需要與 匿名函數(shù) lambda 聯(lián)合起來使用,我們今天就來學(xué)習(xí)下。

1.map()

map() 可以用于在函數(shù)中對指定序列做映射,返回值是一個迭代器,其使用語法如下:

map(function, *iterables)

上面的第一個參數(shù) function 指一個函數(shù),第二個參數(shù) iterable 指一個或多個可迭代對象,在執(zhí)行過程中,會對可迭代對象中的每一個元素調(diào)用 function 函數(shù)做計算,最后得到一個新的迭代器對象,而這個新的迭代器對象,會包含有每次調(diào)用 function 函數(shù)的返回值。

只傳入一個可迭代對象:

"""計算列表中每個元素的三次方"""
def demo_map(x):
    return x ** 3
nums = [1, 2, 3, 4, 5]
print(list(map(demo_map, nums)))  # 輸出:[1, 8, 27, 64, 125]

# 使用匿名函數(shù)
print(list(map(lambda x: x ** 3, nums)))  # 輸出:[1, 8, 27, 64, 125]

傳入多個可迭代對象

"""計算3個列表中對應(yīng)下標(biāo)元素的和"""
def demo_map(x, y, z):
    return x + y + z
nums1 = [1, 2, 3, 4, 5]
nums2 = [11, 22, 33, 44, 55]
nums3 = [100, 200, 300, 400, 500]
print(list(map(demo_map, nums1, nums2, nums3)))  # 輸出:[112, 224, 336, 448, 560]

# 使用匿名函數(shù)
print(list(map(lambda x, y, z: x + y + z, nums1, nums2, nums3)))  # 輸出:[112, 224, 336, 448, 560]

2.filter()

filter() 可以用于過濾序列,過濾掉不符合條件的元素,返回值也是一個迭代器,其使用語法如下:

filter(function or None, iterable)

和 map() 函數(shù)類似,上面的第一個參數(shù) function 指一個函數(shù),第二個參數(shù) iterable 指一個可迭代對象,執(zhí)行后會得到一個包含每次調(diào)用 function 函數(shù)返回值的迭代器。

"""找出從 -5 到 5 中能被 4 整除的所有整數(shù)"""
def demo_filter(x):
    return x % 4 == 0
nums = range(-5, 6)
print(list(nums))  # 輸出:[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
# 傳入None,只返回true的值(0是False,所以被過濾掉了)
print(list(filter(None, nums)))  # 輸入:[-5, -4, -3, -2, -1, 1, 2, 3, 4, 5]
# 傳入正常函數(shù),過濾出 nums 中能被 4 整除的整數(shù)
print(list(filter(demo_filter, nums)))  # 輸出:[-4, 0, 4]
# 使用匿名函數(shù)
print(list(filter(lambda x: x % 4 == 0, nums)))  # 輸出:[-4, 0, 4]

針對 map() 和 filter() 函數(shù), 這里有 2 點需要注意:

  • map 中必須傳入一個正常函數(shù),而在 filter 函數(shù)中則可以傳正常函數(shù)或者None,當(dāng)傳入None時,只返回可迭代對象中所有符合 true 的值
  • map 中支持傳多個可迭代對象,而在 filter 函數(shù)中則只能傳一個可迭代對象

3.reduce()

reduce() 可以用于對參數(shù)序列中的元素進行累積,返回的是一個值。

在 Python3 中,reduce() 已被從全局名字空間里移除了,如果想要使用它,那么需通過引入 functools 模塊來調(diào)用 reduce() 函數(shù),

其使用語法如下:

from functools import reduce
reduce(function, sequence[, initial])

上面的第一個參數(shù) function 指一個函數(shù),并且該函數(shù)必須含有2個參數(shù),第二個參數(shù) sequence 指一個序列,第三個參數(shù) initial 指初始值,默認(rèn)是None。

例如存在函數(shù):reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]),它就相當(dāng)于 ((((1+2)+3)+4)+5)。

from functools import reduce
def demo_reduce(x, y):
    return x + y
nums = range(1, 101)
print(reduce(demo_reduce, nums))  # 輸出:5050
# 使用匿名函數(shù)
print(reduce(lambda x, y: x + y, nums))  # 輸出:5050

# 設(shè)置初始值為 1000
print(reduce(lambda x, y: x + y, nums, 1000))  # 輸出:6050

上面的 map()、reduce()、filter() 都是屬于Python3中的高階函數(shù),它們最大的好處在于可以讓代碼更加簡潔,當(dāng)然,如果不使用它們,我們也可以通過其他方式來實現(xiàn)。

到此這篇關(guān)于Python3中map(),reduce(),filter()的詳細(xì)用法的文章就介紹到這了,更多相關(guān)Python map(),reduce(),filter()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3.6的字符串處理f-string的使用技巧分享

    python3.6的字符串處理f-string的使用技巧分享

    在這篇文章中講解了F字符串的基礎(chǔ)使用,對于F字符串有著很多的使用技巧,在這篇文章中你會見識到更多的F字符串的使用技巧,下面小編將介紹python3.6?的字符串處理f-string的使用技巧,需要的朋友可以參考下
    2024-02-02
  • python 字典修改鍵(key)的幾種方法

    python 字典修改鍵(key)的幾種方法

    這篇文章主要介紹了python 字典修改鍵(key)的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python flask與fastapi性能測試方法介紹

    Python flask與fastapi性能測試方法介紹

    這篇文章主要介紹了Python flask與fastapi性能測試方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • Django實現(xiàn)文章詳情頁面跳轉(zhuǎn)代碼實例

    Django實現(xiàn)文章詳情頁面跳轉(zhuǎn)代碼實例

    這篇文章主要介紹了Django實現(xiàn)文章詳情頁面跳轉(zhuǎn)代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • pandas調(diào)整列的順序以及添加列的實現(xiàn)

    pandas調(diào)整列的順序以及添加列的實現(xiàn)

    這篇文章主要介紹了pandas調(diào)整列的順序以及添加列的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 利用Python實現(xiàn)智能合約的示例詳解

    利用Python實現(xiàn)智能合約的示例詳解

    智能合約是一種由計算機程序編寫的自動化合約,它可以在沒有第三方干預(yù)的情況下執(zhí)行交易和契約條款。這篇文章主要介紹了如何利用Python實現(xiàn)智能合約,需要的可以參考一下
    2023-04-04
  • 用于統(tǒng)計項目中代碼總行數(shù)的Python腳本分享

    用于統(tǒng)計項目中代碼總行數(shù)的Python腳本分享

    這篇文章主要介紹了用于統(tǒng)計項目中代碼總行數(shù)的Python腳本分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Python實現(xiàn)通過文件路徑獲取文件hash值的方法

    Python實現(xiàn)通過文件路徑獲取文件hash值的方法

    這篇文章主要介紹了Python實現(xiàn)通過文件路徑獲取文件hash值的方法,結(jié)合實例形式分析了Python針對文件進行hash運算的實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-04-04
  • Python中pandas庫的常用操作實例

    Python中pandas庫的常用操作實例

    這篇文章主要介紹了Python中pandas庫的常用操作實例,Pandas 庫是一個免費、開源的第三方 Python 庫,是 Python 數(shù)據(jù)分析必不可少的工具之一,它為 Python 數(shù)據(jù)分析提供了高性能,且易于使用的數(shù)據(jù)結(jié)構(gòu),即 Series 和 DataFrame,需要的朋友可以參考下
    2023-07-07
  • Python?安裝教程以及快速入門

    Python?安裝教程以及快速入門

    Python是一種簡單易學(xué)的編程語言,適合初學(xué)者入門。本文將介紹Python的安裝教程以及快速入門,幫助讀者快速上手Python編程。
    2023-09-09

最新評論