Python中如何按字典的值对字典列表进行排序?

208 阅读1分钟

我们可以使用内置的 sorted() 函数 按字典的值对一个字典列表进行 排序 。

这个函数返回一个指定iterable对象的排序列表。我们可以指定排序为升序或降序。字符串按字母顺序排序,而数字则按数字排序。

我们现在要把这个有字典和它们的键的列表传递给 sorted() 方法。我们可以使用两种不同的方法来传递这些键。

  • 1.使用 lambda() 函数
  • 2.使用 itemgetter 方法

使用lambda()函数。

首先,让我们考虑一个名为 'a' 的字典列表 ,其键和值如下。

我们现在用 sorted() 函数 传递这个列表 ,用 lambda 函数传递键,在这里我们用迭代器 item 访问字典的值

所以我们完整的代码看起来是这样的,当我们打印列表 'a'时, 我们得到它按字典的值排序。

如果我们需要以相反的顺序打印,那么我们只需 在 lambda() 函数旁边的 sorted() 函数中加入 reverse=True, 用逗号隔开。

使用 itemgetter 方法。

现在要使用这个项getter方法,我们首先要从 operator 模块 中导入这个 方法 。

它的整体输出与上面提到的带lambda()函数的sorted()类似,但其内部工作略有变化。这个方法将字典的键转换为图元,然后进行排序。

注意: 这个方法更快,而且相对有效。