Python中的sorted函数-使用示例
发布时间:2023-06-22 19:29:10
Python中的sorted函数是一个内置函数,用于对列表、字典、元组、集合等数据类型进行排序操作,并返回一个新的已排序的列表。本文将介绍sorted函数的基本语法和几个常用的参数,同时给出几个使用示例。
基本语法:
sorted(iterable, key=None, reverse=False)
其中,参数iterable是需要排序的可迭代对象,比如列表、元组等;参数key是排序的依据,可以是一个函数或者lambda表达式,用于从每个元素中提取一个关键字进行排序;参数reverse是是否将排序结果进行反转,默认为False。
实现按值排序:
在对列表进行排序时,可以通过sorted函数的默认行为按照列表元素的大小进行排序。例如:
a = [5, 2, 9, 3] sorted_a = sorted(a) print(sorted_a)
运行结果为:
[2, 3, 5, 9]
实现按照键排序:
在对字典进行排序时,可以使用sorted函数的key参数指定按照字典的键或值进行排序。例如,以下代码将会按照字典的键进行排序:
d = {'apple': 3, 'banana': 2, 'pear': 7, 'orange': 1}
sorted_d = sorted(d.items(), key=lambda x: x[0])
print(sorted_d)
运行结果为:
[('apple', 3), ('banana', 2), ('orange', 1), ('pear', 7)]
实现按照值排序:
如果需要按照字典的值进行排序,则可以将key参数设置为lambda表达式,通过字典的values()方法获取字典值进行排序。例如:
d = {'apple': 3, 'banana': 2, 'pear': 7, 'orange': 1}
sorted_d = sorted(d.items(), key=lambda x: x[1])
print(sorted_d)
运行结果为:
[('orange', 1), ('banana', 2), ('apple', 3), ('pear', 7)]
实现多列排序:
在需要排序的数据结构中具有多列的数据时,可以使用lambda表达式进行多列排序。例如:
data = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10), ('susan', 'A', 20)]
sorted_data = sorted(data, key=lambda x: (x[1], x[2]))
print(sorted_data)
运行结果为:
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15), ('susan', 'A', 20)]
在此示例中,按照列表中的第2列和第3列排序,先按照第2列排序,如果第2列相同,则按照第3列中的值进行排序。
实现降序排序:
如果需要将排序结果反转,则可以将参数reverse设置为True。例如:
a = [5, 2, 9, 3] sorted_a = sorted(a, reverse=True) print(sorted_a)
运行结果为:
[9, 5, 3, 2]
除了上述示例之外,sorted函数还可以排序元组、集合和字符串等数据类型,具有很高的灵活性和功能。因此,学习sorted函数是Python编程的重要一步。
