如何利用sorted函数对Python列表进行排序
发布时间:2023-06-25 19:08:21
Python中内置的sorted()函数可以用于对列表进行排序。sorted()函数可以接受一个可迭代对象作为参数,并返回一个新的排序过的列表,而不改变原列表。sorted()函数支持一个可选的参数key,用于指定排序的规则。
例如,对于一个包含整数的列表进行排序:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_lst = sorted(lst) print(sorted_lst)
输出结果为:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
可以看到,sorted()函数返回了一个新的列表,该列表是排序过的。
另外,还可以通过指定key参数来自定义排序规则。例如,对于一个包含字符串的列表,可以按照字符串长度进行排序:
lst = ['python', 'java', 'javascript', 'ruby', 'php', 'c++'] sorted_lst = sorted(lst, key=len) print(sorted_lst)
输出结果为:
['php', 'java', 'ruby', 'c++', 'python', 'javascript']
可以看到,sorted()函数按照字符串长度进行了排序。
还可以通过指定reverse参数来指定排序的顺序。例如,对于一个包含整数的列表,可以按照降序进行排序:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_lst = sorted(lst, reverse=True) print(sorted_lst)
输出结果为:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
可以看到,sorted()函数按照降序进行了排序。
如果列表中的元素是对象,可以通过指定key参数来定义排序规则。例如,对于一个包含Person对象的列表,可以按照年龄进行排序:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
lst = [Person('Tom', 20), Person('Jack', 18), Person('Rose', 22)]
sorted_lst = sorted(lst, key=lambda x: x.age)
for p in sorted_lst:
print(p.name, p.age)
输出结果为:
Jack 18 Tom 20 Rose 22
可以看到,sorted()函数按照年龄进行了排序。
需要注意的是,sorted()函数返回的是一个新的排序过的列表,而不改变原列表。如果想改变原列表,可以通过列表的sort()方法来进行排序。
总之,sorted()函数是Python中非常实用的一个函数,可以用于对所有可迭代对象进行排序,而且可以灵活地指定排序规则。在实际开发中,经常会用到sorted()函数对列表进行排序。
