2010-06-28 99 views
78

有沒有辦法從python中的元組中使用表達式獲取一個值?從python元組中獲取一個值

def Tup(): 
    return (3,"hello") 

i = 5 + Tup(); ## I want to add just the three 

我知道我能做到這一點:

(j,_) = Tup() 
i = 5 + j 

但是,這將幾十行添加到我的功能,增加了一倍的長度。

+0

的'_'也只是變量。它通常用於爲其分配可丟棄的值。但理論上你可以從'_' – 2017-03-08 15:52:56

回答

117

你可以寫

i = 5 + Tup()[0] 

元組可以被索引就像名單。

元組和列表之間的主要區別是元組是不可變的 - 你不能將元組的元素設置爲不同的值,或者像你可以從列表中添加或刪除元素。但除此之外,在大多數情況下,他們的工作幾乎相同。

+1

賓果獲得價值!但是在另一個問題上拖延了:元組和列表之間的區別是什麼?還是有一個? – BCS 2010-06-28 20:58:33

+6

元組是不可變的 – 2010-06-28 21:00:05

+2

@BCS:看起來像我在編寫它時在您的評論的答案中編輯的;-) – 2010-06-28 21:00:09

25

對於任何人在未來尋找一個答案,我想給一個更清晰的答案的問題

# for making a tuple 

MyTuple = (89,32) 
MyTupleWithMoreValues = (1,2,3,4,5,6) 

# To concatinate tuples 
AnotherTuple = MyTuple + MyTupleWithMoreValues 
print AnotherTuple 

# it should print 89,32,1,2,3,4,5,6 

# To get Value from tuple 
firstVal = MyTuple[0] 
secondVal = MyTuple[1] 


# usage is more like a list 

# if you got a function that returns tuple than you might do this 
Tup()[0] 
Tup()[1] 

#or This 
v1,v2 = Tup() 

希望這將清除的東西還爲別人

+0

感謝您的更新。爲了完整起見,您可能希望在元組解包中添加使用下劃線作爲「虛擬」佔位符。 – Emile 2016-04-08 09:36:57

+0

如果Tup是返回元組的函數,我們可以將其名稱更改爲TupFxn。 Tup看起來像一個python關鍵字/ function/builtin – kdubs 2017-03-21 17:32:54