MST

星途 面试题库

面试题:Python字典排序在多条件下的高效实现

有一个字典,其中键是字符串,值是元组,例如 {'apple': (3, 5), 'banana': (2, 6), 'cherry': (3, 4)}。要求先按元组的第一个元素升序排序,如果第一个元素相同则按第二个元素降序排序,最后返回排序后的字典(可以以列表形式呈现键值对),请设计一个高效的算法并编写Python代码实现。
40.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
my_dict = {'apple': (3, 5), 'banana': (2, 6), 'cherry': (3, 4)}
sorted_items = sorted(my_dict.items(), key=lambda item: (item[1][0], -item[1][1]))
print(sorted_items)

排序后的结果以列表形式呈现,列表中每个元素是一个包含键值对的元组,即 [('banana', (2, 6)), ('apple', (3, 5)), ('cherry', (3, 4))]

这里使用 sorted 函数对字典的项(items)进行排序,key 参数指定了排序规则:先按元组的第一个元素升序排序,如果第一个元素相同则按第二个元素降序排序。