2016-06-12 182 views
-1

以下列表最初是由於排序而轉換的字典;從嵌套列表/元組/字典中提取值

list1 = [ 
      ('key1', {'count': 10, 'value1': Counter({'set1': 5, 'set2': 4, 'set3': 1})}), 
      ('key2', {'count': 8, 'value2': Counter({'set1': 6, 'set2': 2})}), 
      ('key3', {'count': 7, 'value3': Counter({'set1': 5, 'set2': 2, 'set3': 1})}) 
     ] 

我想要得到的是前兩個「關鍵」每個鍵的對象(其計數一起),而第一個「值」對象(連同其計數)。例如,我試圖獲得一個打印輸出;

key1 10 
set1 5 

key2 8 
set1 6 

編輯:這是我已經嘗試過(並與玩弄);

for key, value in sorted_x: 
    print key, value - only gives key/value as a whole 
for key, value in sorted_x: 
    print key, value[0] - gives keyerror. I've tried a few variations including nested loops. 
for key, value in sorted_x.iteritems(): 
    print key, value 

我試過做嵌套循環,試圖獲得部分列表[1]。但是我一直無法確定我想要的數據並不斷收到錯誤信息。

+1

你的問題是什麼?如果您希望我們用您的代碼來幫助您,您應該向我們展示您爲解決此問題而編寫的代碼,以及它如何不按預期工作。此外,您所要求的輸出與您的描述不符。例如'value1'和'value2'呢? –

+0

我編輯了你的輸出。你真的希望「關鍵」行與「設置」行分開嗎?如果沒有,只需重新編輯所需的輸出。 –

+0

@Tim Pietzcker我編輯過。我仍然對python很感興趣,並嘗試過玩一段時間,對於我的缺乏經驗感到抱歉。 – user1165419

回答

0

以下內容假設您的訂單從不改變。

def get_stuff(list): 
    for i in list[:2]: 
     print i[0], i[1].values()[0] 
     print i[1].values()[1].keys()[0], i[1].values()[1].values()[0] 
+0

非常感謝。出於某種原因,'key1',它顯示'set2 4'而不是'set1 5'。對於其他鍵(或鍵),它顯示第一個設定值正確。 – user1165419