gpt4 book ai didi

python - 没有库的列表中整数的乘积

转载 作者:太空宇宙 更新时间:2023-11-03 14:52:13 26 4
gpt4 key购买 nike

假设我不被允许使用图书馆。我如何着手计算列表中索引的乘积。假设所有整数都不为 0 或更小。当我尝试垂直计算索引时,问题变得更难了。

bigList = [[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]]

使用 numpy 解决我的问题是:

import numpy as np   
print([np.prod(l) for l in zip(*bigList)])

[1, 32, 243, 1024, 3125]

然而,如果没有它,我的解决方案会更加困惑:

rotateY = [l for l in zip(*bigList)]
productList = [1]* len(bigList)
count = 0
for l in rotateY:
for i in l:
productList[count] *= i
count += 1
print(productList)

[1, 32, 243, 1024, 3125]

最佳答案

您可以遍历每一行,获取每一行的第 n 个元素,并将每个元素相乘:

>>> from functools import reduce
>>>
>>> def mul_lst(lst):
return reduce(lambda x, y: x * y, lst)

>>>
>>> bigList = [[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]]
>>>
>>> [mul_lst([row[i] for row in bigList]) for i in range(len(bigList))]
[1, 32, 243, 1024, 3125]

如果您不能使用任何 库,包括functools,您可以手动编写mul_lst 函数的逻辑:

>>> def mul_lst(lst):
product = lst[0]
for el in lst[1:]:
product *= el
return product

>>> mul_lst([3, 3])
9
>>> mul_lst([2, 2, 2, 2, 2])
32

关于python - 没有库的列表中整数的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com