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

学习Python的sorted()函数:对列表进行排序

发布时间:2023-07-02 03:50:57

Python中有一个非常方便的排序函数sorted(),它可以对列表进行排序。本文将详细介绍sorted()函数的使用方法,并提供一些常用的排序实例。

首先,sorted()函数的语法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable是可迭代对象,例如列表、元组或字符串;key是一个可选参数,用于指定用来排序的元素;reverse是另一个可选参数,用于控制排序结果的顺序,默认为升序。

下面是一个简单的示例,用sorted()函数对一个列表进行排序:

nums = [5, 2, 8, 1, 7]
sorted_nums = sorted(nums)
print(sorted_nums)

输出结果为:[1, 2, 5, 7, 8]

可以看到,sorted()函数将nums列表中的元素按照升序排列,并将排序结果赋值给sorted_nums。原始列表nums并没有改变。

如果要按照降序排列,可以通过设置reverse参数为True:

nums = [5, 2, 8, 1, 7]
sorted_nums = sorted(nums, reverse=True)
print(sorted_nums)

输出结果为:[8, 7, 5, 2, 1]

在排序时,sorted()函数默认会根据元素的值进行排序。对于数字类型,从小到大;对于字符串类型,按字母顺序排序。但是,有时候我们可能希望根据其他的标准进行排序。这时可以使用key参数来指定排序标准。

下面是一个示例,按照字符串长度对一个字符串列表进行排序:

names = ['Tom', 'Jerry', 'Mike', 'Jack']
sorted_names = sorted(names, key=len)
print(sorted_names)

输出结果为:['Tom', 'Mike', 'Jack', 'Jerry']

可以看到,按照字符串的长度从小到大进行排序了。

还可以使用lambda函数来定义key参数。比如,按照字符串的 个字母进行排序:

names = ['Tom', 'Jerry', 'Mike', 'Jack']
sorted_names = sorted(names, key=lambda x: x[0])
print(sorted_names)

输出结果为:['Jack', 'Jerry', 'Mike', 'Tom']

可以看到,根据字符串的 个字母从小到大进行排序了。

除了基本的列表排序外,sorted()函数还可以对包含多个元素的列表进行排序。例如,对一个包含元组的列表进行排序,可以指定key参数为一个lambda函数来指定按照元组的某个元素进行排序:

students = [('Tom', 90), ('Jerry', 80), ('Mike', 95), ('Jack', 85)]
sorted_students = sorted(students, key=lambda x: x[1], reverse=True)
print(sorted_students)

输出结果为:[('Mike', 95), ('Tom', 90), ('Jack', 85), ('Jerry', 80)]

可以看到,按照元组的第二个元素进行降序排列了。

总结一下,sorted()函数是Python中非常实用的排序函数,它可以对包含数字或字符串的列表进行排序,并且支持自定义排序标准。通过学习sorted()函数的使用方法,我们可以很方便地对数据进行排序和处理。