Python 3:在迭代上应用运算符
发布时间:2020-12-20 12:20:41 所属栏目:Python 来源:网络整理
导读: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(iterabl
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 functools def f(x,y): return x+y print functools.reduce(f,[1,2,3,4]) # prints 10 print functools.reduce(f,4],10) # prints 20,because it initializes at 10,not 0. 您可以根据您的iterable更改函数,因此它可以自定义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |