gpt4 book ai didi

python - 在元组中添加元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:22 24 4
gpt4 key购买 nike

假设我有一个如下所示的元组:

s = 15, 50, 71, 4, 19

我正在尝试将元组中的每个元素与其他元素一个一个地添加。即找到 15 和 50 以及 15 和 71 等的总和...

所以我试图弄乱 map 函数,但我从未使用过它,但我想出了这个,但我得到了 TypeError: argument 2 to map() must support iteration 错误。

test1 = tuple(map(operator.add, s[0], s[1]))

我也试过让每个元素都是整数,但我也得到了一个错误

test1 = tuple(map(operator.add, int(s[0]), int(s[1])))

我希望有人知道另一种方法,我可以用它来完成我想做的事情。

谢谢!!

编辑:

谢谢大家,所有的建议都很有帮助,我找到了一些不同的方法来做我需要做的事情!

最佳答案

我想也许您正在寻找 itertools.combinationsitertools.starmap :

In [7]: s = 15, 50, 71, 4, 19

In [8]: import itertools as IT

In [9]: import operator

In [10]: list(IT.starmap(operator.add, (IT.combinations(s, 2))))
Out[10]: [65, 86, 19, 34, 121, 54, 69, 75, 90, 23]

IT.combinations(s, 2) 返回一个迭代器,其中包含 s 中的所有项目对:

In [11]: list(IT.combinations(s, 2))
Out[11]:
[(15, 50),
(15, 71),
(15, 4),
(15, 19),
(50, 71),
(50, 4),
(50, 19),
(71, 4),
(71, 19),
(4, 19)]

IT.starmapoperator.add 应用于每一对。当您希望解压缩参数时,您可以使用 starmap 而不是 mapoperator.add 需要 2 个参数,而这对只是一个对象——一个 2 元组。因此,我们使用 starmap 将 2 元组解压缩为 2 个参数,然后再将它们传递给 operator.add

关于python - 在元组中添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360754/

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