首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中使用Currying

问在python中使用Currying
EN

Stack Overflow用户
提问于 2021-03-30 21:14:39
回答 1查看 38关注 0票数 0

我编写了以下函数

代码语言:javascript
复制
def addsub(a): 
     def add(a): 
         def subtract(b): 
             return a-b 
         return subtract 
     return add(a)

addsub(9)(4)返回5

但是如果我不知道加减法的个数,我想执行addsub(9)(3)(4)(5)。

上面的函数对它不起作用,我可以写一些通用的东西,对任何长度的输入都有效吗?

PS。我不想使用functools

EN

回答 1

Stack Overflow用户

发布于 2021-10-02 15:01:35

这不可能完全像你所描述的那样(使用currying)。但是,如果您想要的是将一个列表的数字与一个不同的符号相加,在我看来,这是最简单的:

代码语言:javascript
复制
import itertools
coefficients = itertools.cycle((1, -1))
numbers = [9, 3, 4, 5]
result = sum(a * c for a, c in zip(numbers, coefficients))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66871665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档