排序是计算机程序中经常用到的操作之一。在 Python 中,sorted() 是可用于排序的内置函数。在处理字典时,我们可以使用 sorted 函数来对字典按 key 或 value 进行排序。下面详细介绍一下如何使用 sorted 对字典进行排序。
sorted 函数的用法
sorted 函数的基本用法为:sorted(iterable, key=None, reverse=False)
其中:
iterable
表示待排序的可迭代对象。key
是用来指定排序标准的函数,可以根据函数的返回值来确定排序方式。如果不指定 key,则 sorted 会默认按照元素的大小排序。reverse
用于控制是否倒序排序,默认值为 False。
根据字典的 key 排序
我们可以使用 sorted
函数对字典按照 key 进行排序,这里的 key 就是字典的键。下面是一些示例以及说明:
示例 1
d = {'c': 1, 'a': 3, 'b': 2}
sorted_d = sorted(d.items())
print(sorted_d)
输出结果为:
[('a', 3), ('b', 2), ('c', 1)]
这里我们使用 d.items()
来取出字典中的所有键值对,然后返回的结果是一个列表,我们再使用 sorted()
来对其排序。因为 sorted 函数默认根据元素的大小进行排序,所以这里默认使用了键来进行排序。最终的输出结果是按照字母表顺序排列的。
示例 2
d = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
sorted_d = dict(sorted(d.items(), key=lambda x: x[0]))
print(sorted_d)
输出结果为:
{'four': 4, 'one': 1, 'three': 3, 'two': 2}
这里我们使用 d.items()
来取出字典中的所有键值对,然后使用 sorted
函数对其进行排序。我们还指定了 key
参数,使用了一个 lambda 函数,根据键的字母表顺序来进行排序。最后将排序后的结果转换成了字典。
根据字典的 value 排序
如果我们想要将字典按照值进行排序,可以使用 key
参数指定一个 lambda 函数,用于返回字典中的每个值。下面同样给出示例:
示例 1
d = {'c': 1, 'a': 3, 'b': 2}
sorted_d = dict(sorted(d.items(), key=lambda x: x[1]))
print(sorted_d)
输出结果为:
{'c': 1, 'b': 2, 'a': 3}
这里我们使用 d.items()
来取出字典中的所有键值对,然后使用 sorted
函数对其进行排序。我们指定了 key
参数,使用了一个 lambda 函数,根据值来进行排序。最后将排序后的结果转换成了字典。
示例2
d = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
sorted_d = dict(sorted(d.items(), key=lambda x: x[1], reverse=True))
print(sorted_d)
输出结果为:
{'four': 4, 'three': 3, 'two': 2, 'one': 1}
这里我们同样使用了一个 lambda 函数,根据值来进行排序。同时我们还指定了 reverse
参数为 True,用于倒序排序。
总结一下,通过使用 sorted 函数和指定 key 参数,我们可以按照字典的 key 或 value 进行排序。在使用过程中需要注意指定 key 参数的规则,并且还可以使用 reverse 参数进行倒序排序。