-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()])' –