欢迎访问宙启技术站
智能推送

使用Python内置函数sorted()排序列表的几种方法

发布时间:2023-06-13 17:50:23

Python中,列表是一种非常常用的数据类型。在实际开发中,经常需要对列表进行排序操作,Python提供了内置函数sorted()进行排序。本篇文章介绍了几种使用sorted()函数对列表进行排序的方法。

1. 使用sorted()函数对普通列表进行升序排序

对于普通的列表,可以使用sorted()函数对其进行升序排序。示例代码如下:

lst = [3, 1, 4, 2, 7, 5, 6]
sorted_lst = sorted(lst)
print(sorted_lst)

输出结果为:

[1, 2, 3, 4, 5, 6, 7]

2. 使用sorted()函数对普通列表进行降序排序

使用sorted()函数对普通列表进行降序排序,可以通过指定参数reverse=True实现。示例代码如下:

lst = [3, 1, 4, 2, 7, 5, 6]
sorted_lst = sorted(lst, reverse=True)
print(sorted_lst)

输出结果为:

[7, 6, 5, 4, 3, 2, 1]

3. 使用sorted()函数对嵌套列表的某一列进行排序

当列表中的元素是列表时,可以使用sorted()函数对其进行排序。此时需要指定排序依据列的索引,在函数中添加key参数。示例代码如下:

lst = [[3, 'apple'], [1, 'banana'], [4, 'orange'], [2, 'grape'], [7, 'lemon'], [5, 'peach'], [6, 'pear']]
sorted_lst = sorted(lst, key=lambda x:x[0])
print(sorted_lst)

输出结果为:

[[1, 'banana'], [2, 'grape'], [3, 'apple'], [4, 'orange'], [5, 'peach'], [6, 'pear'], [7, 'lemon']]

此时根据列表中的 列进行排序,即数字大小顺序。

4. 使用sorted()函数对字典列表进行排序

当列表中的元素是字典时,可以使用sorted()函数对其进行排序。此时需要指定排序依据的关键字,即字典的键或值,在函数中添加key参数。示例代码如下:

lst = [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 20}, {'name': 'Lucy', 'age': 15}, {'name': 'John', 'age': 22}]
sorted_lst = sorted(lst, key=lambda x:x['age'])
print(sorted_lst)

输出结果为:

[{'name': 'Lucy', 'age': 15}, {'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 20}, {'name': 'John', 'age': 22}]

此时根据字典的'age'键进行排序。

5. 使用sorted()函数对自定义类对象的列表进行排序

当列表中的元素是自定义类对象时,可以使用sorted()函数对其进行排序。此时需要定义类的__lt__方法。示例代码如下:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def __lt__(self, other):
        return self.age < other.age
        
lst = [Person('Tom', 18), Person('Jerry', 20), Person('Lucy', 15), Person('John', 22)]
sorted_lst = sorted(lst)
for person in sorted_lst:
    print(person.name)

输出结果为:

Lucy
Tom
Jerry
John

此时根据Person类中定义的'age'属性进行排序。

总结:

本篇文章介绍了几种使用sorted()函数对列表进行排序的方法。经过实践可以发现,使用sorted()函数对列表排序非常方便快捷,既可以对普通列表进行排序,也可以对嵌套列表、字典列表、自定义类对象的列表进行排序。对于开发者而言,sorted()函数是一个非常有用的工具。