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
我总和的问题是它不适用于支持运算符的其他类型,例如计数器.
解决方法 尝试查看pythonreduce()
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:在迭代上应用运算符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)