我怀疑你要找的不是一个大的dict,而是一个dict列表,每行一个。例如:dicts = []
for line in sys.stdin:
dicts.append(eval(line))
实际上,我会用^{}(正如^{})文档所建议的那样)来编写这篇文章,*并将其简化为一个列表理解:
^{pr2}$
但是不管怎样,dicts中的每个元素都是dict。所以,要将它们全部打印出来:for d in dicts:
print d
唯一的问题是,你想把它们分类。我不知道你想怎样分类。一般来说,排序字典没有任何意义(这就是为什么python2给您一个无意义的顺序,python3给您一个TypeError)的原因。当然,也有一些特殊的情况,其中有一些有意义的顺序,但每一种情况都是不同的。在
也许在您的例子中,您希望依赖于这样一个事实:每个dict都有一个键,并根据该键进行排序?如果是:for d in sorted(dicts, key=lambda d: d.keys()[0]):
print d
但那只是猜测。在
从评论中:how do I do a count on let say, charcount (it exists in the value part of the dict) of all dictionaries with same key.
如果你想这么做,你有两个选择。在
首先,您可以搜索整个字典列表,如下所示:charcounts = []
for d in dict