python中可迭代的归约函数,功能这么强,你能不爱? ? ?

相信学习python的小伙伴都用过这些函数,但是它们的功能真的太强了,还是忍不住把它们总结记录一下!!!

import functools
import itertools

# 归约函数:接受一个可迭代对象,然后返回单个结果的函数。

# all(it)
# it中的所有元素都为真时返回True,否者返回False
print(all(range(10)))  # 因为出现了0,所以返回False

# any(it)
# 只有有一个元素是True就返回True,否者返回False
print(any(range(10)))

# max(it,[key=],[default=])
# 返回it中的最大值,key指定排序规则,如果it为空,返回default的值
print(max(['apple', 'banana', 'orange', 'peach'], key=len, default='apple'))  # 按照长度进行比较

# min(it,[key=],[default=])
# 返回it中的最小值,key指定排序规则,如果it为空,返回default的值
print(min([1, 2, -4, -9, 6], key=abs, default=0))  # 按照绝对值进行比较

# itertools.reduce(func,it,[initial])
# 把前两个元素传给func,然后把计算结果和第三个元素传给func,以此类推,返回最后的结果,如果提供了initial
# 就会把它当做第一个元素传入
print(functools.reduce(lambda a, b: a * b, range(1, 11)))  # 计算10!
print(list(itertools.accumulate(range(1, 11), lambda a, b: a * b)))  # 依次计算1! 2! 3!...10!

# sum(it,start=0)
# it中所有元素的总和,如果提供可选的start,会把它加上
print(sum(range(3), start=10))  # 0+1+2+10=13

请告诉我,这些函数中哪个你没有用到手软???如果有的话,那么证明你对python的爱还是不够哈哈哈哈哈哈

 

同步更新于个人博客系统:python中可迭代的归约函数,功能这么强,你能不爱? ? ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值