-1
入れ子のタプル/ディクテーションを持つ次のリストがあります。ネストされたタプル/ディクショナリからなるリストを反復する
list1 = [
('key1', {'count': 10, 'value1': Counter({'set1': 5, 'set2': 4, 'set3': 1})}),
('key2', {'count': 8, 'value1': Counter({'set1': 6, 'set2': 2})}),
('key3', {'count': 7, 'value1': Counter({'set1': 5, 'set2': 2, 'set3': 1})})
]
これは私がこれまで行ってきたことです。
for key, value in list1:
print key, value['count'], '|||', value['value1'].keys(), value['value1'].values()
Result:
key1 10 ||| ['set1', 'set2', 'set3'] [5, 4, 1]
key2 8 ||| ['set1', 'set2'] [6, 2]
key3 7 ||| ['set1', 'set2', 'set3'] [5, 2, 1]
私が理解できないことは、各セットを繰り返し処理し、そのようなカウントを印刷する方法です。カウンタ値については
key1 10 ||| set1 5, set 4, set3 1
key2 8 ||| set1 6, set2 2
key3 7 ||| set1 5, set2 2, set3 1
は、私が唯一のキーや値のみを取得するように見えるが、上記のように一度に1を反復処理することはできません。
は私が探していたまさに、どうもありがとうございました。私はカウンターmost_common()関数は、非常に便利な、そこに使用することができた実現しませんでした。 – user1165419
新しい質問を作成して私を救う機会があれば、どうやって.formatでフォーマットすることができるかも知っていますか?私は '{1} {0} 'を試しました。format(* kv値[' value1 ']。most_common()))'。それはうまくいきませんが、私は ''値1 'のkvのために '' most_common(): "{1} {0}"フォーマット(* kv) 'を表示します。理由は、%sと%dの順序を変更したいのです。 – user1165419
@ user1165419:文字列形式のスロットは2つしかありませんが、ペア*のリストを渡そうとしています。それは動作しません。個々のペアを書式設定し、その結果をカンマで区切り、kv値['value1']の ''、 '.join([' {1:d} {0} '。 most_common()]) ' –