Python – 如何按第 K 个索引值对字典进行排序
在使用Python时,可能会遇到一个问题,即需要根据值列表的第 K 个索引对字典执行排序。这通常是在评分或 Web 开发的情况下。让我们讨论一种可以执行此任务的方法。
Input : test_dict = {‘gfg’ : [5, 6, 7], ‘is’ : [1, 4, 7], ‘best’ : [8, 3, 1]}, K = 2
Output : [(‘best’, [8, 3, 1]), (‘gfg’, [5, 6, 7]), (‘is’, [1, 4, 7])]
Input : test_dict = {‘gfg’ : [5, 6, 7], ‘is’ : [1, 4, 7], ‘best’ : [8, 3, 1]}, K = 0
Output : [(‘is’, [1, 4, 7]), (‘gfg’, [5, 6, 7]), (‘best’, [8, 3, 1])]
方法:使用sorted()
+ lambda
上述功能的组合可以用来解决这个问题。在此,我们使用 sorted() 执行排序,并使用 lambda函数来驱动第 K 个索引逻辑。
# Python3 code to demonstrate working of
# Sort Dictionary by Kth Index Value
# Using sorted() + lambda
# initializing dictionary
test_dict = {'gfg' : [5, 6, 7],
'is' : [1, 4, 7],
'best' : [8, 3, 1]}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing K
K = 1
# Sort Dictionary by Kth Index Value
# Using sorted() + lambda
res = sorted(test_dict.items(), key = lambda key: key[1][K])
# printing result
print("The sorted dictionary : " + str(res))
输出 :
The original dictionary is : {'gfg': [5, 6, 7], 'is': [1, 4, 7], 'best': [8, 3, 1]}
The sorted dictionary : [('best', [8, 3, 1]), ('is', [1, 4, 7]), ('gfg', [5, 6, 7])]