gpt4 book ai didi

python 3 : apply an operator over an iterable

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:44 25 4
gpt4 key购买 nike

sum(iterable) 实际上是:

def sum(iterable):
s = 0
for x in iterable:
s = s.__add__(x)
return s

Python 是否有内置函数可以在不设置初始值的情况下完成此操作?

# add is interchangeable with sub, mul, etc.
def chain_add(iterable):
iterator = iter(iterable)
s = next(iterator)
while True:
try:
s = s.__add__(next(iterator))
except StopIteration:
return s

sum 的问题是它不适用于支持 + 运算符的其他类型,例如计数器

最佳答案

尝试查看 python reduce() function : 你传入一个函数、一个可迭代对象和一个可选的初始化器,它会将函数累积应用于所有值。

例如:

import functools
def f(x,y):
return x+y

print functools.reduce(f, [1, 2, 3, 4]) # prints 10
print functools.reduce(f, [1, 2, 3, 4], 10) # prints 20, because it initializes at 10, not 0.

您可以根据您的可迭代对象更改函数,因此它非常可定制。

关于 python 3 : apply an operator over an iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com