-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
爲計數器的值,我似乎纔拿到鑰匙或僅值,但如上圖所示,在一個時間通過他們一個不重複。
非常感謝你,正是我一直在尋找。我沒有意識到Counter most_common()函數可以用在那裏,非常有用。 – user1165419
嘿,通過任何機會拯救我創建一個新的問題,你知道我可以用.format格式化嗎?我已經嘗試過''{1} {0}'。格式(*(kv爲kv,值爲'value1']。most_common()))'。它不起作用,但是當我爲value ['value1']中的kv'進行操作時,most_common(): 會打印出「{1} {0}」。format(* kv)'。原因是我想改變%s和%d的順序。 – user1165419
@ user1165419:您的字符串格式中只有兩個插槽,但正在嘗試傳入*對的列表*。這是行不通的。您需要格式化單個對,然後以逗號之間的逗號進行連接:'','.join(['{1:d} {0}'。format(* kv)',值爲['value1']。 most_common()])' –