python – 在元组中添加元素

可以说我有一个像下面这样的元组:

s = 15, 50, 71, 4, 19

我试图将元组中的每个元素逐个添加到每个元素中.即找到15和50以及15和71等的总和……

所以我试图搞乱map函数,但是我从来没有使用过它,但是我已经想到了这个但是我得到了TypeError:map()的参数2必须支持迭代错误.

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.starmap将operator.add应用于每对.如果希望解压缩参数,可以使用starmap而不是map. operator.add需要2个参数,而这对只是一个对象 – 一个2元组.因此我们使用starmap将2元组解压缩为2个参数,然后将它们传递给operator.add.

上一篇:Python中的元组Subtract语句


下一篇:c# – 迭代元组中的项目