python列表中常见的一些排序方法

  • Post category:Python

以下是“Python列表中常见的一些排序方法”的完整攻略。

1. 列表排序的概述

在Python中,我们可以使用内置的sort()函数或sorted()函数来对列表进行排序。sort()函数是在原地排序,即直接修改原始列表,而sorted()函数则是返回一个新的排序后的列表。

2. sort()函数的使用

sort()函数是在原地排序,即直接修改原始列表。sort()函数有两个可选参数:reverse和key。reverse参数用于指定排序的顺序,如果reverse=True,则按照降序排序;如果reverse=False,则按照升序排序。key参数用于指定排序的关键字,即按照哪个属性进行排序。

2.1 升序排序

我们可以使用sort()函数对列表进行升序排序。例如:

number_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
number_list.sort()
print(number_list)

在上面的代码中,我们使用sort()函数对number_list进行升序排序,并使用print()函数输出结果。

期望的输出结果是:

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

2.2 降序排序

我们使用sort()函数对列表进行降序排序。例如:

number_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
number_list.sort(reverse=True)
print(number_list)

在上面的代码中,我们使用sort()函数对number_list进行降序排序,并使用print()函数输出结果。

期望的输出结果是:

[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

2.3 按照关键字排序

我们可以使用sort()函数按照关键字对列表进行排序。例如:

student_list = [('Tom', 18), ('Jerry', 20), ('Lucy', 19), ('Bob', 17)]
student_list.sort(key=lambda x: x[1])
print(student_list)

在上面的代码中,我们使用sort()函数按照学生的年龄对student_list进行排序,并使用print()函数输出结果。

期望的输出结果是:

[('Bob', 17), ('Tom', 18), ('Lucy', 19), ('Jerry', 20)]

示例说明

示例1:按照字符串长度排序

string_list = ['apple', 'banana', 'orange', 'pear']
string_list.sort(key=len)
print(string_list)

在上面的示例代码中,我们使用sort()函数按照字符串长度对string_list进行排序,并使用print()函数输出结果。

期望的输出结果是:

['pear', 'apple', 'banana', 'orange']

示例2:按照元素出现次数排序

number_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
number_list.sort(key=number_list.count, reverse=True)
print(number_list)

在上面的示例代码中,我们使用sort()函数按照元素出现次数对number_list进行排序,并使用print()函数输出结果。

期望的输出结果是:

[5, 5, 5, 3, 3, 1, 1, 4, 9, 2, 6]

3. sorted()函数的使用

sorted()是返回一个新的排序后的列表,不会修改原始列表。sorted()函数的参数和sort()函数的参数相同。

3.1 升序排序

我们可以使用sorted()函数对列表进行升序排序。例如:

number_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(number_list)
print(new_list)

在上面的代码中,我们使用sorted()函数对number_list进行升序排序,并将结果存储在一个新的列表中。

期望的输出结果是:

[1, , 2, 3, 3, 4, 5, 5, 5, 6, 9]

3.2 降序排序

我们可以使用sorted()函数对列表进行降序排序。例如:

number_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(number_list, reverse=True)
print(new_list)

在上面的代码中我们使用sorted()函数对number_list进行降序排序,并将结果存储在一个新的列表中。

期望的输出结果是:

[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

3.3 按照关键字排序

我们可以使用sorted()函数按照关键字对列表进行排序。例如:

student_list = [('Tom', 18), ('Jerry', 20), ('Lucy', 19), ('Bob', 17)]
new_list = sorted(student_list, key=lambda x:[1])
print(new_list)

在上面的代码中,我们使用sorted()函数按照学生的年龄对student_list进行排序,并将结果存储在一个新的列表中。

期望的输出结果是:

[('Bob', 17), ('Tom', ), ('Lucy', 19), ('Jerry', 20)]

示例说明

示例1:按照字符串长度排序

string_list = ['apple', 'banana', 'orange', 'pear']
new_list = sorted(string_list, key=len)
print(new_list)

在上面的示例代码中,我们使用sorted()函数按照字符串长度对string_list进行排序,并将结果存储在一个新的列表中。

期望的输出结果是:

['pear', 'apple', 'banana', 'orange']

示例2:按照元素出现次数排序

number_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(number_list, key=number_list.count, reverse=True)
print(new_list)

在上面的示例代码中,我们使用sorted()函数按照元素出现次数对number_list进行排序,并将结果存储在一个新的列表中。

期望的输出结果是:

[5, 5, 5, 3, 3, 1, 1, 4, 9, 2, 6]

4. 总结

在Python中,我们可以使用内置的sort()函数或sorted()函数来对列表进行排序。sort()函数是在原地排序,即直接原始列表,而sorted()函数则是返回一个新的排序后的列表。我们可以使用reverse参数来指定排序的顺序,使用key参数来指排序的关键字。在实际应用中,我们需要根据具体的需求来选择使用哪种排序方法。

以上是“Python列表中常见的一些排序方法”的完整攻略。