Python排序时使用key函数进行排序

2023-03-13 00:00:00 python 函数 排序

在Python中,可以使用内置的sort()方法和sorted()函数对列表进行排序。这些方法和函数都支持一个可选的参数key,它允许您指定一个函数,该函数将应用于每个元素,并返回一个用于排序的值。

下面是一个示例,演示如何使用key参数对数字列表进行排序:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers, key=lambda x: -x)
print(sorted_numbers)  # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在上面的代码中,我们使用lambda函数来定义一个匿名函数,该函数接受一个数字并返回其相反数。我们将此函数传递给sorted()函数作为key参数,从而按相反顺序对数字列表进行排序。

另一个示例,演示如何使用key参数对字典列表进行排序:

people = [{'name': 'John', 'age': 25},
          {'name': 'Jane', 'age': 18},
          {'name': 'David', 'age': 30},
          {'name': 'Samuel', 'age': 22}]
people_sorted = sorted(people, key=lambda x: x['age'])
print(people_sorted)  # [{'name': 'Jane', 'age': 18}, {'name': 'Samuel', 'age': 22}, {'name': 'John', 'age': 25}, {'name': 'David', 'age': 30}]

在上面的代码中,我们使用lambda函数来定义一个匿名函数,该函数接受一个字典并返回其'age'键的值。我们将此函数传递给sorted()函数作为key参数,从而按年龄对字典列表进行排序。

总之,key参数是一种非常有用的方式,用于在排序时指定一个自定义规则,而不是默认规则。

相关文章