利用Python的sorted()函数对列表排序
Python是一种高级编程语言,它提供了各种内置函数来处理列表。其中一个非常重要的函数是sorted()函数,它可以对一个列表进行排序。下面我们将介绍一些sorted()函数的用法。
1. 初步使用及基本排序
最简单的方法是对列表进行排序,这可以使用以下语句:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
这里我们定义了一个包含数字的列表my_list,我们可以使用sorted()函数对其进行排序,并将排序后的列表存储在一个新变量中。在这种情况下,我们将sorted_list打印出来,它包含了排序过的数字列表。
2.从小到大排序
默认情况下,sorted()函数按照升序对列表进行排序。例如:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
运行结果是:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
3. 从大到小排序
如果要对列表进行降序排列,可以使用sorted()函数的reverse参数:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, reverse = True)
print(sorted_list)
运行结果是:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
4. 按字符串长度排序
sorted()函数也可以用来按字符串长度对列表进行排序。在python中,我们可以使用lambda表达式编写一个简短的函数作为排序函数:
my_list = ['cat', 'watermelon', 'car', 'zebra', 'apple', 'banana']
sorted_list = sorted(my_list, key = lambda x: len(x))
print(sorted_list)
运行结果是:
['cat', 'car', 'zebra', 'apple', 'banana', 'watermelon']
这里的元素按字符串长度(字母数)排序。
5. 按多个条件排序
在某些情况下,我们需要使用多个条件来对列表进行排序。在这种情况下,我们可以使用lambda函数来定义一个排序函数。以下是一个例子,按列表中的 个元素对列表进行排序,然后按第二个元素对它们进行排序。
my_list = [(4, "apple"), (1, "banana"), (3, "carrot"), (2, "banana")]
sorted_list = sorted(my_list, key = lambda x: (x[0], x[1]))
print(sorted_list)
运行结果是:
[(1, 'banana'), (2, 'banana'), (3, 'carrot'), (4, 'apple')]
在这个例子中,我们先将元素按照 个数字进行排序,如果 个数字相同,则按照第二个字符串排序。
6. 以反向顺序对多个键进行排序
如果要对多个条件进行排序,但其中一个条件需要按照降序排列,则可以使用reverse参数。 例如:
my_list = [(4, "apple"), (1, "banana"), (3, "carrot"), (2, "banana")]
sorted_list = sorted(my_list, key = lambda x: (x[0], x[1]), reverse = True)
print(sorted_list)
运行结果是:
[(4, 'apple'), (3, 'carrot'), (2, 'banana'), (1, 'banana')]
在这种情况下, 个元素按升序排列,而第二个元素按降序排列。
7. 最短的排序
在某些情况下,可能需要对一个非常简单的列表进行排序,但不希望编写实际的排序函数。在这种情况下,可以使用如下语句:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
这里使用列表的sort()方法对列表进行排序,它与sorted()函数的不同之处在于,sort()方法对列表in-place操作,而不是返回一个新列表,因此可以替换原始列表的值。
sorted()函数的应用场景非常广泛。在对大量数据进行分析时,经常需要对列表进行排序来进行计算或可视化。因此,了解如何使用sorted()函数对列表进行排序是成为一位优秀Python程序员的必要知识。
