2016-07-01 39 views
1

我有一個Python中的字典,其中每個鍵有一組十個元組。我試圖遍歷字典訪問每個元組內的單個元素 - 我應該怎麼做?Python:訪問元組列表中的單個值

字典看起來像這樣:

{'Key1': [(Hi, 1), (Bye, 2)], 'Key2': [(Cats, Blue), (Dogs, Red)]} 

說我想要的鍵的載體,所述第一元件的矢量[您好,再見,貓,狗]和第二[1,2中的一個,藍色,紅色]

這是我試圖代碼:我知道這是不正確

for key in dict: 
     for tuplelist in dict: 
      key_vector.append(key_ 
      tuple1_vector.append(dict[key[1]]) 
      tuple2_vector.append(dict[key[2]]) 

,但我不知道如何去修復它。

回答

1

我假設你的意思是你的字典是:

your_dict = {'Key1': [('Hi', 1), ('Bye', 2)], 'Key2': [('Cats', 'Blue'), ('Dogs', 'Red')]} 

您可以通過遍歷所有的鍵,得到任何的元組是在那裏,然後遍歷該元組內的所有條目。有可能是一個更簡單的方法,但至少應該讓你有:

for key in your_dict: 
    for t in your_dict[key]: 
     for i in t: 
      print(i) 
+0

感謝您的幫助! – Hannah

1

您可以使用.values()訪問值在字典中,然後遍歷值表和索引的各個項目的元組:

tuple1_vector = [] 
tuple2_vector = [] 
for v in d.values(): 
    for t in v: 
     tuple1_vector.append(t[0]) 
     tuple2_vector.append(t[1]) 

你也可以用一個列表理解做這個:

tuple1_vector = [t[0] for v in d.values() for t in v] 
tuple2_vector = [t[1] for v in d.values() for t in v] 

print(tuple1_vector) 
# ['Cats', 'Dogs', 'Hi', 'Bye'] 
print(tuple2_vector) 
# ['Blue', 'Red', 1, 2] 
0

你可以做到以下幾點:

keys = [] 
tuple1 = [] 
tuple2 = []  
For key in dict: 
     keys.append(key) 
     tuple1.append(dict[key][0][0]) 
     tuple1.append(dict[key][0][1]) 
     tuple1.append(dict[key][1][0]) 
     tuple1.append(dict[key][1][1]) 

但是不要,這真是糟糕的代碼。我只是在展示一個解決方案,但這不值得。其他人已經做得更好了(比如遍歷字典[鍵](例如,對於字典中的項[鍵] ...)。