加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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更改函数,因此它可以自定义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读