Python自定义sorted排序实现方法详解

  • Post category:Python

Python自定义sorted排序实现方法详解

什么是sorted排序

sorted()是Python内置的函数,用于对序列进行排序。它可以对列表、元组、字符串等序列类型进行排序。

sorted()的常用参数:

  • iterable:要排序的序列,例如列表或元组。
  • key:排序的规则,传入一个函数,指定排序的依据,默认为None,即按照元素本身进行排序。
  • reverse:排序规则是否为逆序,默认为False,即按照从小到大的顺序进行排序。

Python自定义sorted排序实现方法

通过指定key参数,我们可以自定义排序规则。主要有两种方法可以实现自定义排序。

方法一:传入lambda函数定义的排序规则

# 根据元组中的第二个元素进行排序
arr = [(1, 4), (2, 3), (3, 2), (4, 1)]
arr_sorted = sorted(arr, key=lambda x: x[1])
print(arr_sorted)
# 输出:[(4, 1), (3, 2), (2, 3), (1, 4)]

在以上代码中,我们通过在key参数中传入以x为参数、返回元组中第二个元素的函数,来实现根据元组中的第二个元素进行排序。

方法二:传入自定义的比较函数定义的排序规则

# 根据字符串长度进行排序
arr = ['hello', 'hi', 'world', 'thanks']
def cmp_length(x, y):
    if len(x) < len(y):
        return -1
    elif len(x) > len(y):
        return 1
    else:
        return 0
arr_sorted = sorted(arr, cmp=cmp_length)
print(arr_sorted)
# 输出:['hi', 'hello', 'world', 'thanks']

在以上代码中,我们自定义了一个比较函数cmp_length,通过在sorted()cmp参数中传入该函数,来实现根据字符串长度进行排序。

需要注意的是,sorted()函数的cmp参数在Python 3中已经被移除,如果需要使用自定义排序规则,应该传入key参数。

总结

sorted()函数提供了排序的便捷方式,通过自定义key参数,我们可以实现按照特定规则进行排序。如果没有逆序的需求,建议使用默认的从小到大排序规则,可以避免一些不必要的麻烦。

以上是Python自定义sorted排序实现方法的详细攻略,希望可以帮助你更好地使用Python进行排序。