如何在元组中单独添加元素?

时间:2014-07-26 09:08:36

标签: python list tuples addition

如何在元组中单独添加元素?

例如,我需要来自(2, 4) + (0,1)的{​​{1}},我一直在这样做,但有更多的pythonic /更简洁的方法来做同样的事情?

(2,3)

3 个答案:

答案 0 :(得分:3)

您可以在此处使用zipsum

示例:

>>> x = (0, 1)
>>> y = (2, 3)
>>> tuple(map(sum, zip(x, y)))
(2, 4)
  • zip让我们成对组合两个iterables或列表的元素。
  • sum让我们总结一下
  • map允许我们每对应用sum函数。
  • 最后我们将结果列表(或Python 3.x中的可迭代)转换回tuple,因为那样你似乎我想要。

以上示例基本上最终成为;

(0 + 2, 1 + 3)

答案 1 :(得分:2)

你自己的解决方案是在纯python中执行此操作的正确方法。

如果您想避免循环,可以使用numpy对操作进行矢量化:

import numpy as np
tuple( np.asarray(tup1) + np.asarray(tup2) )

如果您确实需要将数据作为元组,那么您应该只将数据传回元组。否则,请保留为numpy数组,这意味着您可以稍后对其应用更多矢量化操作。

此外,第二次转换为np.asarray是可选的。第一个就足够了(其他转换由numpy自动完成)。

答案 2 :(得分:0)

这可能是使用numpy从元组中添加单个元素的更快方法:

import numpy as np 

x = (0,1)
y = (2,3)

z = np.array(x) + np.array(y)
z = tuple(z)

z
(2, 4)