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

歡迎訪問 生活随笔!

生活随笔

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

python

python中 lambda, map ,filter ,reduce讲解

發布時間:2024/9/30 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中 lambda, map ,filter ,reduce讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

lambda

是匿名函數 同來表達簡單的函數
使用lambda函數應該注意的幾點:
lambda定義的是單行函數,如果需要復雜的函數,應該定義普通函數
lambda參數列表可以包含多個參數,如 lambda x, y: x + y
lambda中的表達式不能含有命令,而且只限一條表達式
默認返回表達式中的計算結果

例子,外部傳參數
加法 。x,y為參數,返回x+y

f=lambda x,y:x+y c=f(5,6) print(c) #c=11

直接傳參數
兩個括號,第一個括號把lambda括起來,第二個括號傳入實參。

f=(lambda x,y:x+y)(5,6) print(f) #結果11

其他

import numpy as np f=(lambda x,y:x+y)(5,6) print(f)def f1(x,y):return x+y f2=(lambda x,y:f1(x,y))(5,6) print(f2)

結果都是11

python序列內置函數

map ,filter ,reduce都是python 內置的序列處置函數。
map
map函數的原型是map(function, iterable, …),它的返回結果是可迭代對象。
參數function傳的是一個函數名,可以是python內置的,也可以是自定義的。
參數iterable傳的是一個可以迭代的對象,例如列表,元組,字符串這樣的。

這個函數的意思就是將function應用于iterable的每一個元素。注意到沒有,iterable后面還有省略號,意思就是可以傳很多個iterable,如果有額外的iterable參數,并行的從這些參數中取元素,并調用function。如果一個iterable參數比另外的iterable參數要短,多余的將被舍棄。

f=lambda x,y:x+y c=map(f,[1,2,3,4],[2,3,4,5,6]) print(c) c=list(c) print(c)

filter
filter()函數是 Python 內置的另一個有用的高階函數,filter()函數接收一個函數 f 和一個序列,函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新的序列Iterator

#例子 過濾掉小于0的數

def f(x):if x>0:return x c1=filter(f,[-1,-2,3,4,-7]) c=list(filter(f,[-1,-2,3,4,-7])) print(c1) print(c)


reduce
reduce函數與map函數有不一樣地方,map操作是并行操作,reduce函數是把多個參數合并的操作,也就是從多個條件簡化的結果。
reduce(function, sequence, initial)
sequence可迭代對象
function函數
initial初始值:只能指定一個,如果有多個參數,其余從sequence選

function參數是一個有兩個參數的函數,reduce依次從sequence中取一個元素,和上一次調用function的結果做參數再次調用function。
第一次調用function時,如果提供initial參數,會以sequence中的第一個元素和initial作為參數調用function,否則會以序列sequence中的前兩個元素做參數調用function。

#計算1到5的階乘

def add(x, y):return x * y print(reduce(add, [1,2,3,4,5]))

結果120

4*計算1到5的階乘

from functools import reduce def add(x, y):return x * y print(reduce(add, [1,2,3,4,5],4))

結果480

總結

以上是生活随笔為你收集整理的python中 lambda, map ,filter ,reduce讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

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