如何在元組內單獨添加元素?如何在元組中單獨添加元素?
例如,我需要(2, 4)
從(0,1)
+ (2,3)
,我一直這樣做,但有沒有更pythonic /少冗長的方式做同樣的?
>>> x = (0,1)
>>> y = (2,3)
>>> x + y
(0, 1, 2, 3)
>>> tuple(i+j for i,j in zip(x,y))
(2, 4)
如何在元組內單獨添加元素?如何在元組中單獨添加元素?
例如,我需要(2, 4)
從(0,1)
+ (2,3)
,我一直這樣做,但有沒有更pythonic /少冗長的方式做同樣的?
>>> x = (0,1)
>>> y = (2,3)
>>> x + y
(0, 1, 2, 3)
>>> tuple(i+j for i,j in zip(x,y))
(2, 4)
您可以使用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)
你自己的解決方案是在純python中做到這一點的正確方法。
如果你想避免循環,你可以向量化使用numpy
操作:
import numpy as np
tuple(np.asarray(tup1) + np.asarray(tup2))
您應該只將數據convet回一個元組,如果你真的需要它作爲一個元組。否則,leave是一個numpy數組,這意味着你可以稍後向它應用更多的向量化操作。
此外,第二次轉換爲np.asarray
是可選的。第一個就足夠了(其他轉換是由numpy自動完成的)。
+1但是這會創建一個列表;來代替確切的結果OP要它必須是'tuple(map(sum,zip(x,y)))'' –