有可能对这类词典进行排序吗:
1.排名第一
1.如果rank相同,则按other_rank列表中的第一个元素排序
1.如果other_rank中的第一个元素相同-继续深入,直到列表中的最后一个元素。
如果这是一个麻烦,我可以使这本词典的结构化在不同的方式。
{'rank': 6, 'other_ranks': [7, 5]}
{'rank': 1, 'other_ranks': [7, 11, 6, 2]}
{'rank': 0, 'other_ranks': [12]}
{'rank': 1, 'other_ranks': [13, 11, 4, 3]}
{'rank': 1, 'other_ranks': [14, 12, 6, 5]}
{'rank': 4, 'other_ranks': [5, 4, 3, 2]}
{'rank': 0, 'other_ranks': [12]}
2条答案
按热度按时间rm5edbpk1#
假设有一个列表,可以将
operator.itemgetter
与sorted
的key参数结合使用:产出
这里的关键是列表和元组是按字典顺序比较的,参见文档:
相同类型的序列也支持比较。特别是,元组和列表是通过比较对应的元素按字典顺序进行比较的。
因此,请按原样比较它们。
2sbarzqh2#
这叫做词法比较,Python的元组实现了这一点。