47.python之魔法函数 filter、map、reduce

本文详细介绍了Python内置的filter、map和reduce函数的用法。filter函数用于过滤序列,返回符合条件的元素组成的迭代器;map函数则对序列中的每个元素应用指定函数并返回结果;reduce函数将序列元素累积计算。文中通过匿名函数和普通函数展示了这些函数的具体使用,并给出了相关示例。
摘要由CSDN通过智能技术生成

filter

  • 用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
  • 返回一个迭代器对象

用法:

filter(func,list)

参数:

  • func:对list每个item进行条件过滤的定义
  • list:需要过滤的列表

例1:使用匿名函数

a = [1, 3, 5]
b = filter(lambda x: x < 5, a)
print(list(b))

例2:使用普通函数

a = [1, 3, 5]

def test(item):
    if item < 5:
        return True

b = filter(test, a)
print(list(b))

前面2个结果都是:
在这里插入图片描述

map

  • 对循环,根据过滤条件是否符合要求的判断

用法:

map(func,list)

参数:

  • func:对list每个item进行条件满足的判断
  • list:需要过滤的列表

例1:使用匿名函数

a = [1, 3, 5]

b = map(lambda x: x + 5, a)
print(list(b))

c = map(lambda x: x < 5, a)
print(list(c))

例2:使用普通函数

a = [1, 3, 5]

# 判断是否小于5
def test(item):
    if item < 5:
        return True
    else:
        return False

# 加5
def add(item):
    item += 5
    return item

b = map(add, a)
print(list(b))

c = map(test, a)
print(list(c))

结果:
在这里插入图片描述

reduce

  • 对参数序列中元素进行累积

用法:

reduce(func,list)

参数:

  • func:对数据累加的函数
  • list:需要处理的列表

例:

from functools import reduce

b = reduce(lambda x, y: x + y, range(101))
print(f'使用匿名函数:1到100相加:{b}')

def add(x,y):
    return x+y

c = reduce(add, range(101))
print(f'使用普通函数:1到100相加:{c}')

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值