lambdafiltermapreduce函数的基本使用
生活随笔
收集整理的這篇文章主要介紹了
lambdafiltermapreduce函数的基本使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
'''
Created on 2019-03-14
Author:Binzhou
Project:python中l(wèi)ambda filter map reduce函數(shù)使用總結(jié)
'''
#lambda匿名函數(shù),格式lambda x,y:x+y 表示一個函數(shù)的參數(shù)是x,y,函數(shù)實現(xiàn)功能是x+y
#filter[function,sequence]用于過濾序列 返回迭代器對象(包含所有滿足使function返回值為True的sequence值)
#python2直接返回與sequence一致的數(shù)據(jù)類型(列表,元組)
print(filter(lambda x:x*x-4,range(10)))#用于過濾序列 返回迭代器對象<filter object at 0x000000000113C940>
print(list((filter(lambda x:x*x-4,range(10)))))#使用list將迭代器對象轉(zhuǎn)換成list,結(jié)果為TRUE的入?yún)?br />print(list((filter(lambda x:x*x,range(10))))) #序列0傳入使結(jié)果為False,返回結(jié)果無0
#map[function,sequence1,...]將函數(shù)調(diào)用映射到每個序列的對應(yīng)元素上,入?yún)⑿蛄袨榱斜?#xff0c;返回迭代器對象
print(map(lambda x,y:x*y-4,range(3),[8,9,10]))#將函數(shù)調(diào)用映射到每個序列的對應(yīng)元素上,返回迭代器對象<map object at 0x00000000011B5DA0>
print(list(map(lambda x,y:x*y-4,range(3),[8,9,10])))#使用list將迭代器對象轉(zhuǎn)換成list
#reduce[function,sequence,inital=None]:先把sequence中第一個值和第二個值當(dāng)參數(shù)傳給function,再把function的返回值和第三個值當(dāng)參數(shù)傳給fuction,最終返回一個結(jié)果值(似累加)
# 在Python 3里,reduce()函數(shù)已經(jīng)被從全局名字空間里移除了,它現(xiàn)在被放置在fucntools模塊里 用的話要 先引
# from functools import reduce
from functools import reduce
print(reduce(lambda x,y:x+y,range(10)))#返回0-9的累加結(jié)果 # 第一次調(diào)用function時,如果提供initial參數(shù),會以sequence中的第一個元素和initial作為參數(shù)調(diào)用function,否則會以序列sequence中的前兩個元素做參數(shù)調(diào)用function。
# reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
# 結(jié)果為21( ?(((((1+2)+3)+4)+5)+6) ?)
# reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
# 結(jié)果為20
Created on 2019-03-14
Author:Binzhou
Project:python中l(wèi)ambda filter map reduce函數(shù)使用總結(jié)
'''
#lambda匿名函數(shù),格式lambda x,y:x+y 表示一個函數(shù)的參數(shù)是x,y,函數(shù)實現(xiàn)功能是x+y
#filter[function,sequence]用于過濾序列 返回迭代器對象(包含所有滿足使function返回值為True的sequence值)
#python2直接返回與sequence一致的數(shù)據(jù)類型(列表,元組)
print(filter(lambda x:x*x-4,range(10)))#用于過濾序列 返回迭代器對象<filter object at 0x000000000113C940>
print(list((filter(lambda x:x*x-4,range(10)))))#使用list將迭代器對象轉(zhuǎn)換成list,結(jié)果為TRUE的入?yún)?br />print(list((filter(lambda x:x*x,range(10))))) #序列0傳入使結(jié)果為False,返回結(jié)果無0
#map[function,sequence1,...]將函數(shù)調(diào)用映射到每個序列的對應(yīng)元素上,入?yún)⑿蛄袨榱斜?#xff0c;返回迭代器對象
print(map(lambda x,y:x*y-4,range(3),[8,9,10]))#將函數(shù)調(diào)用映射到每個序列的對應(yīng)元素上,返回迭代器對象<map object at 0x00000000011B5DA0>
print(list(map(lambda x,y:x*y-4,range(3),[8,9,10])))#使用list將迭代器對象轉(zhuǎn)換成list
#reduce[function,sequence,inital=None]:先把sequence中第一個值和第二個值當(dāng)參數(shù)傳給function,再把function的返回值和第三個值當(dāng)參數(shù)傳給fuction,最終返回一個結(jié)果值(似累加)
# 在Python 3里,reduce()函數(shù)已經(jīng)被從全局名字空間里移除了,它現(xiàn)在被放置在fucntools模塊里 用的話要 先引
# from functools import reduce
from functools import reduce
print(reduce(lambda x,y:x+y,range(10)))#返回0-9的累加結(jié)果 # 第一次調(diào)用function時,如果提供initial參數(shù),會以sequence中的第一個元素和initial作為參數(shù)調(diào)用function,否則會以序列sequence中的前兩個元素做參數(shù)調(diào)用function。
# reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
# 結(jié)果為21( ?(((((1+2)+3)+4)+5)+6) ?)
# reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
# 結(jié)果為20
轉(zhuǎn)載于:https://www.cnblogs.com/BinZhou0901/p/10530154.html
總結(jié)
以上是生活随笔為你收集整理的lambdafiltermapreduce函数的基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》第五十题(字符串中第一
- 下一篇: 给博客园加一个会动的小人-spig.js