Python - 键的同步排序
有时,在使用Python字典时,我们可能会遇到一个问题,即我们需要执行字典的一个键的排序,并且还需要对相应的键执行类似的更改。这种类型在网络开发和竞争性编程中有应用。让我们讨论一下可以执行此任务的特定方式。
Input : test_dict = {“Gfg” : [3, 2, 1], ‘best’ : [17, 10, 20]}, sort_key = “Gfg”
Output : {‘Gfg’: [1, 2, 3], ‘best’: [20, 10, 17]}
Input : test_dict = {“Gfg” : [3, 1], ‘best’ : [10, 20], ‘CS’ : [12, 43]}, sort_key = “Gfg”
Output : {‘Gfg’: [1, 3], ‘best’: [20, 10], ‘CS’: [43, 12]}
方法 #1:使用字典理解 + sorted()
+ 列表理解
上述功能的组合可以用来解决这个问题。在此,我们使用 sorted() 执行排序,并使用字典理解完成对其他字典的复制。
# Python3 code to demonstrate working of
# Synchronized Sorting
# Using dictionary comprehension + sorted() + list comprehension
# initializing dictionary
test_dict = {"Gfg" : [4, 6, 7, 3, 10],
'is' : [7, 5, 9, 10, 11],
'best' : [1, 2, 10, 21, 12]}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# initializing sort key
sort_key = "Gfg"
# Synchronized Sorting
# Using dictionary comprehension + sorted() + list comprehension
temp = [ele for ele, idx in sorted(enumerate(test_dict[sort_key]),
key = lambda x : x[1])]
res = {key : [val[idx] for idx in temp] for key, val in test_dict.items()}
# printing result
print("The Synchronized sorted dictionary : " + str(res))
The original dictionary : {‘best’: [1, 2, 10, 21, 12], ‘Gfg’: [4, 6, 7, 3, 10], ‘is’: [7, 5, 9, 10, 11]}
The Synchronized sorted dictionary : {‘best’: [21, 1, 2, 10, 12], ‘Gfg’: [3, 4, 6, 7, 10], ‘is’: [10, 7, 5, 9, 11]}