Python内置函数sorted的使用方法
Python内置函数sorted()是一个非常实用的函数,可以用于排序Python集合中的元素。sorted()函数可以对列表、元组、字典等各种类型的集合进行排序,使它们按照特定的约束条件从小到大或从大到小展现。
sorted()函数的基本语法是:
sorted(iterable, key=None, reverse=False)
其中,iterable是需要排序的集合(如列表、元组或字典),key是关键字,用来指定排序时比较的元素,默认为None(表示排序使用集合中的每个元素),reverse则是为了指定排序时按照升序排列还是降序排列。reverse=True表示降序排列,reverse=False表示升序排列(默认值)。
下面是sorted()函数的具体用法的详细实例:
1. 对一个列表进行排序
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]
2. 对一个元组进行排序
tup = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
sorted_tup = sorted(tup)
print(sorted_tup)
输出结果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
3. 对一个字典进行排序
dict = {'k1': 5, 'k2': 2, 'k3': 3, 'k4': 1, 'k5': 4}
sorted_dict = sorted(dict.items(), key=lambda x: x[1])
print(sorted_dict)
输出结果:
[('k4', 1), ('k2', 2), ('k3', 3), ('k5', 4), ('k1', 5)]
这里的sorted()函数将字典转换成一个包含键值元组的列表,然后使用key参数指定要按照值排序。
4. 按照字符串长度进行排序
words = ['apple', 'orange', 'banana', 'pineapple', 'kiwi']
sorted_words = sorted(words, key=len)
print(sorted_words)
输出结果:
['kiwi', 'apple', 'orange', 'banana', 'pineapple']
这里的sorted()函数使用key参数指定了按照字符串长度排序。
5. 对复杂数据结构进行排序
如果你的集合中包含了嵌套的元素或者是列表中包含了字典等复杂数据结构,你可以使用lambda表达式和key参数来进行排序。
students = [{'name': 'Lucy', 'age': 18, 'grade': 98},
{'name': 'Jack', 'age': 19, 'grade': 96},
{'name': 'Tom', 'age': 20, 'grade': 92},
{'name': 'Mike', 'age': 18, 'grade': 90}]
sorted_students = sorted(students, key=lambda x: (x['age'], x['grade']), reverse=True)
print(sorted_students)
输出结果:
[{'name': 'Tom', 'age': 20, 'grade': 92},
{'name': 'Jack', 'age': 19, 'grade': 96},
{'name': 'Mike', 'age': 18, 'grade': 90},
{'name': 'Lucy', 'age': 18, 'grade': 98}]
这里的sorted()函数按照学生的年龄和成绩进行排序,并使用reverse=True表示降序排列。
总结
本文介绍了Python内置函数sorted()的使用方法,sorted()函数可以对各种类型的集合进行排序,使用key参数可以指定按照某个字段进行排序,使用reverse参数可以指定升序排列或降序排列。理解sorted()函数的用法可以使你轻松实现对集合的排序,提高你的Python编程效率。
