python升序排列字典
在Python中,字典是由键值对组成的集合数据类型,其键是唯一的。在某些情况下,我们可能需要基于字典的键。(key)或值(value)对字典进行升序和排列。Python内置了多种工具和函数来实现这一目标。以下是如何使用Python对字典进行排序的具体介绍。
怎样对字典按键进行排序?
字典键可以是不可变的类型,比如字符串或者数值。当我们想升级和排列字典按钮时,我们可以使用Python的内置函数sorted。该函数返回一个新的排序列表,但原始字典不会被修改。以下是一个简单的例子:
dict_original = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2} sorted_dict_by_key = sorted(dict_original) print(sorted_dict_by_key)
上述代码首先创建了一个名为dict_original的字典,然后调用sorted()函数对其进行排序。注sorted()返回的是一个包含所有键的列表,按升序排列。
怎样按值排列字典?
若要根据字典的值进行升序排列,则需在sorted()函数中使用key参数,并传入一个函数来指定排序依据。下面的代码显示:
dict_original = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2} sorted_dict_by_value = sorted(dict_original.items(), key=lambda item: item[1]) print(sorted_dict_by_value)
例如,通过调用字典的items()方法,可以得到一份包含所有键值的列表。接着,sorted()函数对这个列表进行排序,根据键值对中的值进行排序,即每个元组的第二个元素。lambda函数用于获得每个键值的正确值。
怎样将排序后的数据存储在新字典中?
尽管sorted()函数可以返回排序后的列表,但是有时候为了保持字典的格式和对应关系,我们需要将这些排序后的数据存储在新的字典中。这可以通过dict()函数和列表推导来实现:
dict_original = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2} sorted_dict = dict(sorted(dict_original.items(), key=lambda item: item[1])) print(sorted_dict)
这个代码创建了一个新的字典,它包含了原始字典按值排序后的键值对。通过这种方式,我们可以得到一个新的字典,它不仅按值排序,而且保持字典结构。
Python 3.7+ 保持插入中字典的顺序
Python 在Python中加入了语言实现的特征。 在3.7版本中,字典类型被正式声明为有序。这意味着字典会记住键值添加的顺序。因此,通过sorted函数和dict结构器创建的新字典也将保持键值正确的排序顺序。
怎样在Python的不同版本中保持字典排序?
字典在早期的Python版本中是无序的。如需维护排序,可在collections模块中使用OrderedDict对象。
from collections import OrderedDict dict_original = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2} sorted_pairs = sorted(dict_original.items(), key=lambda item: item[1]) sorted_dict = OrderedDict(sorted_pairs) print(sorted_dict)
在Python的早期版本中,使用OrderedDict可以创建一个字典来保持键值对于排序。
总结
总之,对Python字典进行排序是一个比较简单直接的操作。使用内置的sorted()函数,我们可以根据字典的键或值进行排序,排序后的数据可以通过dict()函数或OrderedDict存储在新字典中,以保持排序状态。随著语言特性的发展,Python也逐渐为字典处理提供了更多的便利,比如3.7版之后的字典保序特性。