网站首页 > 基础教程 正文
- map()函数
遍历序列,对序列中每个元素进行操作,最终获取新的序列。
也就是说:map()接收一个函数fun 和一个或多个序列 list,并通过把函数fun 此作用在 list 的每个元素上,得到一个新的迭代器(Python2是列表) 并返回。
语法:
map(function, iterable, ...)
function:函数,如果iterable有多个序列,则function的参数也对应有多个
iterable:一个或多个序列
举例:
#一个参数的函数
def map_test_1(x):
return x+2
#两个参数的函数
def map_test_2(x,y):
return x+y
- 当:一个参数的函数时
#一个参数的函数
def map_test_1(x):
return x+2
list_1=[1,2,3,4,5,6]
list(map(map_test_1,list_1))
利用lambda函数进行改写:
list(map(lambda x:x+2,list_1))
- 当:两个参数的函数时
#两个参数的函数
def map_test_2(x,y):
return x+y
list_1=[1,2,3,4,5,6]
list_2=[2,3,4,5,6,7]
list(map(map_test_2,list_1,list_2))
利用lambda函数进行改写:
list(map(lambda x,y:x+y,list_1,list_2))
- 当2个序列长度不一致时,结果以2个序列中的最短长度为准
list(map(lambda x,y : x*y, [1,2,3],[6,7,8,9,10]))
list(map(lambda x,y : x*y, [1,2,3,4,5,6],[6,7]))
- filter()函数
对于序列中的元素进行筛选,最终获取符合条件的序列
也就是说:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回迭代器对象(Python2是列表),可以使用list()转换为列表。
语法:
filter(function, iterable)
function:函数
iterable:序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到迭代器对象中。
举例:
def filter_test(x):
return x%2==0
list_1=[1,2,3,4,5,6]
list(filter(filter_test,list_1))
利用lambda函数进行改写:
list(filter(lambda x:x%2==0,list_1))
- reduce()函数
对于序列内所有元素进行累计操作
也就是说:reduce()函数对一个数据集合的所有数据进行操作:用传给 reduce 中的函数 function(必须有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果在与第三个数据用 function 函数运算,最后得到一个结果。
语法:
reduce(function, iterable[, initializer])
function :函数,有两个参数
iterable : 可迭代对象
initializer : 可选,初始参数
举例:
from functools import reduce
def add(x, y):
return x + y
def mulit(x, y):
return x * y
- 当 function :函数,有两个参数
iterable : 可迭代对象
list_1=[1,2,3,4,5,6]
reduce(add,list_1)
- 当利用lambda函数时:
reduce(lambda x,y:x+y,[1, 2, 3, 4, 5,6])
- 当 function :函数,有两个参数
iterable : 可迭代对象
initializer : 可选,初始参数
reduce(add, [1, 2, 3, 4, 5,6], 10)
当利用lambda函数时:
reduce(lambda x,y:x+y,[1, 2, 3, 4, 5,6], 10)
- 当 function :函数,有两个参数
iterable : 可迭代对象
def mulit(x, y):
return x * y
reduce(mulit, [1, 2, 3, 4, 5])
当利用lambda函数时:
reduce(lambda x,y:x*y,[1, 2, 3, 4, 5])
- 当 function :函数,有两个参数
iterable : 可迭代对象,initializer : 可选,初始参数
def mulit(x, y):
return x * y
reduce(mulit, [1, 2, 3, 4, 5], 10)
答:使用lambda函数时:
reduce(lambda x,y:x*y,[1, 2, 3, 4, 5],10)
总结:
当遍历序列,对序列中每个元素进行操作,并得出新列表时,使用map函数
当对于序列中的元素进行筛选,最终获取符合条件的序列,使用filter函数
当对于序列内所有元素进行累计操作,使用reduce函数。
lambda函数基本用法:lambda函数闲谈
猜你喜欢
- 2024-11-02 Python函数式编程之map/reduce/filter进阶
- 2024-11-02 Python中map函数的奇淫技巧:优化你的编程体验
- 2024-11-02 python内置函数map/reduce/filter
- 2024-11-02 Python 内置函数与匿名函数 python匿名内部类
- 2024-11-02 第八篇:Python中函数介绍 python中的各种函数
- 2024-11-02 「每天3分钟学Python」Python中的 Map 和 Reduce
- 2024-11-02 Python中starmap有什么用的? python中start用法
- 2024-11-02 详解Python中的map、lambda和apply用法
- 2024-11-02 Python编程技巧:如何用Map, Filter, Reduce代替For循环?
- 2024-11-02 Python 函数式编程——map、reduce、filter及lambda匿名函数介绍
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)