2016-06-12 9 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'のために' set1 5'とは対照的に 'set2 4'を表示します。他のキー(または複数のキー)については、最初の設定値が正常に表示されます。 – user1165419

関連する問題