python - 如何编写用最短行乘以数字列表的程序?

标签 python sequence

我在做一个简单的计算器时就想到了这一点。我做了一个简单的程序来对数字列表求和,如下所示,但是乘法程序有点长。

所以任何人都知道如何在 python 中为多个数字列表制作短程序。这是我的代码。

def calculate(oper,*nm):
    return oper(nm)

add=lambda x:sum(x)

def mult(lst):
    tmp=1
    for i in lst:
        tmp*=i
    return tmp

计算(加,2,34,2)

计算(多,8,5,7)

最佳答案

实际上,您不需要定义calculate,因为Python 已经为它命名:reduce .

def calculate(oper, *nm):
    return reduce(oper, nm)

In [6]: import operator

In [7]: calculate(operator.add, 2, 34, 2)
Out[7]: 38

In [8]: calculate(operator.mul, 8, 5, 7)
Out[9]: 280

注意:在 Python3 中,reduce 已移至 functools module . (感谢@ErikRoper 指出这一点。)

关于python - 如何编写用最短行乘以数字列表的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14687663/

相关文章:

python - 如何使用 boto 获取 EC2 实例标签 "Name"的值?

python - Python 中的 "Physically Stored Sequence"是什么?

python - 我有一些列表,我已经合并了它们,但是如何按降序排列值并将其作为 STD?

sql - 如何创建从表中的最大值开始的 Oracle 序列?

list - 是否可以与 F# 中的分解序列匹配?

javascript - 最后在 rxjs 上序列在第一个错误时执行

list - 与 List 相比,F# 序列操作主要慢吗?

python - 使用 Google BigQuery Client API 在 BigQuery 中加载 JSON 文件

python - 如何在 Django 应用程序中嵌入 Bokeh 服务器

python - 搜索精确的字符串,匹配它。如果没有匹配的条目,则添加参数,如果部分匹配则修改python文件