相关文章推荐
温文尔雅的茴香  ·  Win32_USBController ...·  1 年前    · 
想出家的萝卜  ·  AD FS Troubleshooting ...·  1 年前    · 

乘以一个[int(x) for x in input().split()]

0 人关注

我得到2个整数,想把它们直接相乘。我是这样做的。

X,Y = [int(x) for x in input().split()]

但是,如果不创建一个新的行,而只是像这样使用第三个变量,就真的无法弄清楚如何将它们相乘。

W = X*Y

谁能告诉我怎么做?我曾试图寻找一个类似sum()的函数,因为它能创建一个列表。我不能使用任何库

1 个评论
你能提供一个具体的例子,说明你的投入是什么?
python
python-3.x
list
Rafael_O
Rafael_O
发布于 2021-07-07
4 个回答
DeepSpace
DeepSpace
发布于 2021-07-07
已采纳
0 人赞同

由于这可能是在编程网站上解决一个难题的尝试,我假设可读性不是最重要的,你可以使用 reduce (和 map to get rid of the explicit loop):

from functools import reduce
print(reduce(lambda a, b: a * b, map(int, input().split())))

额外的好处是,这对任何任意数量的用空格分隔的数字都有效。

可读性并不重要,但我不能使用图书馆。
@Rafael_O functools 是一个内置模块,所以你可以。
Andrej Kesely
Andrej Kesely
发布于 2021-07-07
0 人赞同

你可以使用 math.prod :

from math import prod
w = prod(int(x) for x in input().split())
print(w)

打印(例如)。

编辑:没有图书馆。

def my_prod(i, start=1):
    out = start
    for v in i:
        out *= v
    return out
w = my_prod(int(x) for x in input().split())
print(w)
    
真的很好的解决方案,但不幸的是,我不能使用图书馆。
lmiguelvargasf
lmiguelvargasf
发布于 2021-07-07
0 人赞同

如果你使用Python 3.8以上版本,你可以从 math 模块中使用 prod ,如下所示。

from math import prod
w = prod(int(x) for x in input().split())

对于之前的版本,你应该使用functools模块的reduce

from functools import reduce # this line is mandatory in Python 3
import operator
def prod(iterable):
    return reduce(operator.mul, iterable, 1)
w = prod(int(x) for x in input().split())