gpt4 book ai didi

python - 根据索引减少列表

转载 作者:行者123 更新时间:2023-11-28 19:57:15 27 4
gpt4 key购买 nike

假设我有 3 个列表

x1 = [1, 2, 3, 4]
x2 = [2, 3, 4, 5]
x3 = [3, 4, 5, 6]

我想根据索引减少这个列表列表。

我们可以通过对元素求和来减少它:- x1[i] + x2[i] + x3[i]

out = [6, 9, 12, 15]

或相乘:- x1[i] * x2[i] * x3[i]

out = [6, 24, 60, 120]

在 python 中完成此任务的最佳方法是什么?

编辑:

有没有办法对列表的列表执行此操作?

最佳答案

您可以使用zipsum 函数。

out = [sum(i) for i in zip(x1, x2, x3)]

对于乘法,您可以使用reduce(对于 Python 2)

out = [reduce(lambda a, b: a * b, i) for i in zip(x1, x2, x3)]

您可以在 Python 3 中从 functools 获取 reduce

但是,您也可以定义自己的乘法函数,然后在列表理解中使用该函数。

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

out = [mult(i) for i in zip(x1, x2, x3)]

如果你有一个列表列表 lst = [[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6]]那么您需要做的就是将 zip(x1, x2, x3) 替换为 zip(*lst)* 运算符基本上解压缩列表的元素并将它们作为单独的参数提供给函数。

例如:

out = [sum(i) for i in zip(*lst)]

关于python - 根据索引减少列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15384143/

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