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

如何使用Python内置函数sorted()对数组进行排序?

发布时间:2023-06-23 02:09:27

在Python中,内置函数sorted()可以对数组进行排序,无论是数字数组还是字符串数组都可以使用sorted()函数进行排序。在对数组排序之前,我们需要了解一些sorted()函数的用法和参数。

sorted()函数的用法

sorted()函数的基本用法为:

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

参数说明:

- iterable:需要排序的序列。

- key:指定用于排序的函数。可以是内置函数比如len()、sorted()等,也可以是自定义的函数。

- reverse:是否需要反向排序,默认为False。

使用sorted()函数对数字数组进行排序

对于数字数组,我们可以直接使用sorted()函数进行排序。

例如,以下为一个数字数组:

arr = [5, 2, 9, 1, 3, 7]

我们可以通过以下代码对其进行升序排序:

sorted_arr = sorted(arr)
print(sorted_arr)

输出结果为:

[1, 2, 3, 5, 7, 9]

如果要对其进行降序排序,可以传递reverse=True参数:

sorted_arr = sorted(arr, reverse=True)
print(sorted_arr)

输出结果为:

[9, 7, 5, 3, 2, 1]

使用sorted()函数对字符串数组进行排序

对于字符串数组,我们可以使用sorted()函数按字典序进行排序。

例如,以下为一个字符串数组:

arr = ['apple', 'banana', 'orange', 'watermelon', 'durian']

我们可以通过以下代码对其进行升序排序:

sorted_arr = sorted(arr)
print(sorted_arr)

输出结果为:

['apple', 'banana', 'durian', 'orange', 'watermelon']

如果要对其进行降序排序,同样可以传递reverse=True参数:

sorted_arr = sorted(arr, reverse=True)
print(sorted_arr)

输出结果为:

['watermelon', 'orange', 'durian', 'banana', 'apple']

使用sorted()函数指定排序规则

有时候我们需要按照数组中元素的某个属性进行排序,此时可以使用key参数指定排序规则。

例如,以下为一个由字典组成的数组:

arr = [{'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 21}, {'name': 'Mike', 'age': 15}]

我们可以使用以下代码对其按照年龄进行升序排序:

sorted_arr = sorted(arr, key=lambda x: x['age'])
print(sorted_arr)

输出结果为:

[{'name': 'Mike', 'age': 15}, {'name': 'Tom', 'age': 18}, {'name': 'Jerry', 'age': 21}]

在上述代码中,我们使用lambda表达式作为key参数指定排序规则,lambda表达式中x为数组中的每个元素,x['age']表示获取元素的年龄属性,sorted()函数会按照这个属性进行排序。

如果要按照年龄进行降序排序,同样可以传递reverse=True参数:

sorted_arr = sorted(arr, key=lambda x: x['age'], reverse=True)
print(sorted_arr)

输出结果为:

[{'name': 'Jerry', 'age': 21}, {'name': 'Tom', 'age': 18}, {'name': 'Mike', 'age': 15}]

总结

在Python中,sorted()函数可以用来对数字数组、字符串数组以及自定义对象数组进行排序,可以按照默认规则或自定义规则进行排序。掌握sorted()函数的使用方法有助于提高我们的数组排序效率。