我搜索了基于值对 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]))
