Python 3:在迭代上应用运算符

Python 3:在迭代上应用运算符,第1张

概述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(i 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

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

解决方法 尝试查看python reduce() function:您传入一个函数,一个可迭代的和一个可选的初始化程序,它会将该函数累加到所有值.

例如:

import functoolsdef f(x,y):    return x+yprint functools.reduce(f,[1,2,3,4]) # prints 10print functools.reduce(f,4],10) # prints 20,because it initializes at 10,not 0.

您可以根据您的iterable更改函数,因此它可以自定义.

总结

以上是内存溢出为你收集整理的Python 3:在迭代上应用运算符全部内容,希望文章能够帮你解决Python 3:在迭代上应用运算符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存