在 Python 中按值对字典进行排序

Beginner

This tutorial is from open-source community. Access the source code

简介

字典是 Python 中的一种基本数据结构,它允许你存储键值对。然而,有时你可能需要按值而不是按键对字典进行排序。在这个挑战中,你将负责创建一个按值对字典进行排序的函数。

按值排序字典

编写一个名为 sort_dict_by_value(d, reverse=False) 的函数,该函数接受一个字典 d 并按其值进行排序。该函数应返回一个新字典,其键与原始字典相同,但值按升序排序。如果 reverse 参数设置为 True,则函数应按降序对字典进行排序。

要解决此问题,你可以按以下步骤操作:

  1. 使用 dict.items()d 中获取一个元组对列表。
  2. 使用 lambda 函数和 sorted() 对列表进行排序。
  3. 使用 dict() 将排序后的列表转换回字典。
  4. 使用 sorted() 中的 reverse 参数根据第二个参数按相反顺序对字典进行排序。

⚠️ 注意: 字典的值必须是同一类型。

def sort_dict_by_value(d, reverse = False):
  return dict(sorted(d.items(), key = lambda x: x[1], reverse = reverse))
d = {'one': 1, 'three': 3, 'five': 5, 'two': 2, 'four': 4}
sort_dict_by_value(d) ## {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
sort_dict_by_value(d, True)
## {'five': 5, 'four': 4, 'three': 3, 'two': 2, 'one': 1}

总结

在这个挑战中,你学习了如何使用 Python 按值对字典进行排序。你可以运用这些知识更有效地处理和分析存储在字典中的数据。