Skip to main content
 首页 » 编程设计

python之根据值对字典进行排序

2025年05月04日14虾米哥

我搜索了基于值对 Python 字典进行排序,并在互联网上得到了各种答案。尝试了其中的几个,最后使用了 Sorted 函数。 我简化了示例以使其清楚。 我有一本字典,说:

temp_dict = {'1': '40', '0': '109', '3': '37', '2': '42', '5': '26', '4': '45', '7': '109', '6': '42'} 

现在,为了根据值对其进行排序,我执行了以下操作(使用 Operator 模块):

sorted_temp_dict = sorted(temp_dict.items(), key=operator.itemgetter(1)) 

我得到的结果是(结果是一个元组,这对我来说没问题):

[('0', '109'), ('7', '109'), ('5', '26'), ('3', '37'), ('1', '40'), ('2', '42'), ('6', '42'), ('4', '45')] 

问题是,如您所见,元组的前两个元素未排序。其余元素根据值完美排序。 无法在此处找到错误。任何帮助都会很棒。谢谢

请您参考如下方法:

那些是排序的。它们是字符串,并按字典顺序排序:“1”在“2”之前,依此类推。

如果要按数值排序,则需要在 key 函数中转换为 int。例如:

sorted(temp_dict.items(), key=lambda x: int(x[1]))