2016-02-07 20 views
2

我正在尋找正確的方法來做兩個元組之間的區別。例如:在python中做兩個元組的區別是什麼

a = (1, 2, 3) 
b = (1, 0, 2) 

差有望

(0, 2, 1) 

我知道我可以遍歷兩個元組創建一個新的記錄,然後做差價,但我正在尋找的東西更傳統或適當的。

回答

3

您可以訪問這兩個指數在同一個迭代與zip內置的幫助。之後,您只需將生成器表達式提供給tuple以創建新的元組對象。

diff = tuple(x-y for x,y in zip(a,b)) 
+0

這不一定是兩者之間的差異,它是一個減去另一個。負號 – zondo

+0

@zondo誰說它不應該包含負數? – khelwood

+0

'差異'的定義是這樣的,它是數字之間的距離,而不是一個數字減去另一個數字 – zondo

2

可以zip兩元組元素,明智的,那麼你就可以減去每對發電機表達

>>> a = (1, 2, 3) 
>>> b = (1, 0, 2) 
>>> tuple(i-j for i,j in zip(a,b)) 
(0, 2, 1) 
+0

這將不一定具有兩者之間的差異。這是一個減去另一個。有一個負數的可能性。 – zondo

+0

@zondo我沒有讀到原始問題中的任何內容,指定他們是否想要簽名或未簽名的差異。如果他們想要一個在另一個上,他們應該在他們的問題中說清楚。 – CoryKramer

+0

這就是差異的含義。這是兩個數字之間的距離,而不是一個數字減去另一個數字。 – zondo

2
from operator import sub 
a = (1, 2, 3) 
b = (1, 0, 2) 
tuple(map(sub, a, b)) 

(0,2,1)