Python - 自定义订单字典
有时,在使用Python字典时,我们可能会遇到需要执行字典键的自定义排序的问题。这是一个非常流行的问题,随着新版本Python的出现,其中键在字典中排序,可能需要对字典键重新排序。让我们讨论可以执行此任务的某些方式。
Input : test_dict = {‘gfg’: 1, ‘is’: 2, ‘best’: 3, ‘for’: 4, ‘geeks’: 5}
Output : {‘gfg’: 1, ‘is’: 2, ‘best’: 3, ‘for’: 4, ‘geeks’: 5}
Input : test_dict = {‘geeks’: 5, ‘for’: 4, ‘best’: 3, ‘is’: 2, ‘gfg’: 1}
Output : {‘gfg’: 1, ‘is’: 2, ‘best’: 3, ‘for’: 4, ‘geeks’: 5}
方法#1:使用循环
这是解决此问题的蛮力方法。在此,我们通过在顺序列表中附加键,与原始字典中的键映射来构造更新的字典。适用于Python >= 3.6。
# Python3 code to demonstrate working of
# Custom order dictionary
# Using loop
# initializing dictionary
test_dict = {'is' : 2, 'for' : 4, 'gfg' : 1, 'best' : 3, 'geeks' : 5}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing order
ord_list = ['gfg', 'is', 'best', 'for', 'geeks']
# Custom order dictionary
# Using loop
res = dict()
for key in ord_list:
res[key] = test_dict[key]
# printing result
print("Ordered dictionary is : " + str(res))
The original dictionary is : {‘is’: 2, ‘for’: 4, ‘gfg’: 1, ‘best’: 3, ‘geeks’: 5}
Ordered dictionary is : {‘gfg’: 1, ‘is’: 2, ‘best’: 3, ‘for’: 4, ‘geeks’: 5}
方法#2:使用字典理解
这是可以执行此任务的另一种方式。在此,我们使用与上述相同的方法使用速记来解决问题。
# Python3 code to demonstrate working of
# Custom order dictionary
# Using dictionary comprehension
# initializing dictionary
test_dict = {'is' : 2, 'for' : 4, 'gfg' : 1, 'best' : 3, 'geeks' : 5}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing order
ord_list = ['gfg', 'is', 'best', 'for', 'geeks']
# Custom order dictionary
# Using dictionary comprehension
res = {key : test_dict[key] for key in ord_list}
# printing result
print("Ordered dictionary is : " + str(res))
The original dictionary is : {‘is’: 2, ‘for’: 4, ‘gfg’: 1, ‘best’: 3, ‘geeks’: 5}
Ordered dictionary is : {‘gfg’: 1, ‘is’: 2, ‘best’: 3, ‘for’: 4, ‘geeks’: 5}