如何在元组中单独添加元素?
例如,我需要来自(2, 4)
+ (0,1)
的{{1}},我一直在这样做,但有更多的pythonic /更简洁的方法来做同样的事情?
(2,3)
答案 0 :(得分:3)
您可以在此处使用zip
和sum
:
示例:强>
>>> x = (0, 1)
>>> y = (2, 3)
>>> tuple(map(sum, zip(x, y)))
(2, 4)
zip
让我们成对组合两个iterables或列表的元素。sum
让我们总结一下map
允许我们每对应用sum
函数。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)