【发布时间】:2018-09-26 18:37:06
【问题描述】:
我是 python 的新手。我正在尝试解决一个问题。假设我正在获取一个带有标识符的日志文件,后跟空格分隔的单词。我需要根据单词对日志进行排序(标识符可以省略)。但是,如果单词匹配,我需要根据标识符进行排序。所以我正在构建一个字典,其中标识符是键,单词是值。为简单起见,我使用下面的示例。如何按值对字典进行排序,然后在值匹配时按键排序?下面是一个例子。
>>> a_dict = {'aa1':'n','ba2' : 'a','aa2':'a'}
>>> a_dict
{'ba2': 'a', 'aa1': 'n', 'aa2': 'a'}
如果我按值对给定字典进行排序,它就会变成这个。
>>> b_tuple = sorted(a_dict.items(),key = lambda x: x[1])
>>> b_tuple
[('ba2', 'a'), ('aa2', 'a'), ('aa1', 'n')]
但是预期的输出应该是这样的
[('aa2', 'a'), ('ba2','a'), ('aa1', 'n')]
原因是如果值相同,则字典必须按键排序。关于如何做到这一点的任何建议?
【问题讨论】:
标签: python data-structures standard-library