Python – 按第 K 个索引列表对记录进行排序
有时,在使用Python记录时,我们可能会遇到一个问题,即我们需要按元组中的某个元素对记录进行排序,有时这又是一个列表,并且必须按该列表的第 K 个索引执行排序。这是不常见的问题,但在 Web 开发等领域中可能会有用例。让我们讨论一下可以执行此任务的特定方式。
Input :
test_list = [([4, 5], ‘Gfg’), ([8, 4], ‘is’), ([2, 3], ‘best’)]
K = 0
Output : [([2, 3], ‘best’), ([4, 5], ‘Gfg’), ([8, 4], ‘is’)]
Input :
test_list = [([4, 5], ‘Gfg’), ([8, 4], ‘is’), ([2, 3], ‘best’)]
K = 1
Output : [([2, 3], ‘best’), ([8, 4], ‘is’), ([4, 5], ‘Gfg’)]
方法:使用 sort() + lambda
上述功能的组合可以用来解决这个问题。在此,我们使用 sort 执行排序任务,必须执行排序的参数和索引使用 lambda函数提供。
Python3
# Python3 code to demonstrate working of
# Sort Records by Kth Index List
# Using sort() + lambda
# initializing list
test_list = [([4, 5, 7, 3], 'Gfg'), ([8, 6, 3, 1], 'is'),
([2, 3, 5, 2], 'best')]
# printing original list
print("The original list is : " + str(test_list))
# initializing K
K = 1
# Sort Records by Kth Index List
# Using sort() + lambda
test_list.sort(key = lambda sub: sub[0][K])
# printing result
print("The records after sorting : " + str(test_list))
原始列表是:[([4, 5, 7, 3], 'Gfg'), ([8, 6, 3, 1], 'is'), ([2, 3, 5, 2], '最好的')]
排序后的记录:[([2, 3, 5, 2], 'best'), ([4, 5, 7, 3], 'Gfg'), ([8, 6, 3, 1], '是')]