2014-02-23 22 views
0

我要遍歷的元素((A,B),(X,Y)),所以我嘗試:用元組元組解碼錯誤?

def method(tuple): 
    ((a,b),(x,y))= tuple 
    for element in tuple: 
    ..... 

但後來我讀到這表明這樣的另一個計算器頁面:

def method(tuple): 
    ((a,b),(x,y))= tuple 
    for element in tuple[0:4]: 
    ..... 

兩者都導致錯誤:ValueError:需要多個值才能解包。

在python中不允許這個動作,還是我只是有一個語法問題? 我也檢查了python文檔。

感謝您的任何建議。

編輯

map = ((1,0),(3,2)) 
    def count(map): 
     ((a,b),(x,y))= tuple 
     inc=0 
     for element in tuple: 
      inc+=1 
+1

請向我們展示您的實際代碼和您使用的數據。 – thefourtheye

+2

目前尚不清楚你想要做什麼。解開元組之後,爲什麼需要迭代?但我不認爲這是你的問題。錯誤「ValueError:需要多個值才能解包」。表示該元組沒有您期望的形式。它試圖分手但失敗。我會確保數據實際上以您期望的形式出現(日誌語句?) – Rob

+0

我想訪問每個元素以查看是否可以計算元組中有多少元素。但你是對的。我試着轉移一些斷點並運行調試器,發現地圖不是我認爲的那種形式。 – JustBlossom

回答

4

如果你有一個元組的元組,形式((a, b), (x, y))的,你可以遍歷它的元素:如果你想有4個變量

def method(tuples): 
    for tup in tuples: 
     for e in tup: 
      print e 

,您可以使用他們分別:

def method(tuples): 
    (a, b), (x, y) = tuples 
    print a, b, x, y 

注: 請勿使用Python內置名稱作爲變量的名稱。換句話說,不要使用tuple作爲變量的名稱,因爲它是Python中的類型。使用別的東西,如tuples,my_tuple,...