字典是具有指定数字或键的特定数据集或组。在 Python 以外的编程语言中,它们也被称为哈希映射或关联数组。

一般来说,它是键值对的形式,就像现实世界的字典一样。

要创建字典,请从左括号开始,添加键并键入一个冒号。之后,输入对应的值。对于多个键值对,用逗号分隔它们。

日常工作中,对一个字典,有时候我们需要进行按值或字典的key进行排序,所以接下来就说几个常用方法:

1) 使用 Sorted()对字典的值进行排序

要根据值对列表进行排序,只需在命令部分键入 sorted(MarksDict.values()) 并按 Enter,例如:

markDict = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}
sorted(MarksDict.values()) 
# output
['1_393_000_000', '328_200_000', '67_000_000']

当然,如果你希望值是按倒序进行排列的,需要加参数:

reverse=True

加上这个参数后输出就是按倒序了:

markDict = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}
sorted(MarksDict.values(), reverse=True) 
# output
['67_000_000', '328_200_000', '1_393_000_000']


2) 在 Sorted() 中使用 Lambda 列表表达式功能

升序

在这种方法中,我们将在 lambda 函数的输入下使用“字典”表达式。使用原始字典,我们将在一行中对值进行排序。

所以,首先,输入打印语句,然后添加键值对。之后,输入“for”循环,它将迭代字典中的各个项目并插入排序函数。

markDict = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}
print({k:v for k,v in sorted(markDict.items(), key=lambda item: item[1])})
#output
{'China': '1_393_000_000', 'USA': '328_200_000', 'France': '67_000_000'}

请注意,在 sort 函数内部,有一个 lambda 函数。项值为 1 的 key 参数的这表示我们要根据值对字典进行排序。如果不要以字典的key来排序,那么应该将其更改为 0。

降序

如果要以降序格式对字典进行分类,只需使用 reverse 语句并将其 Value 变为 True 即可。

ct = {'USA': '328_200_000', 'France': '67_000_000', 'China': '1_393_000_000'}
print({k:v for k,v in sorted(markDict.items(), key=lambda item: item[1], reverse=True)})
#output
{'France': '67_000_000', 'USA': '328_200_000', 'China': '1_393_000_000'}

通过这种方法就可以灵活的实现字典的排序了。