Python学习笔记_数据排序方法
数据排序是常用的程序处理方法。Python 标准库提供了多种排序方法,包括内置函数sorted()和list.sort()方法等等。本文将介绍Python内置的数据排序方法,包括常见的几种算法及其实现,并提供一些示例说明。
内置函数sorted()
Python中可以使用内置函数 sorted() 对列表进行排序。sorted()函数返回一个新的已排序的列表,但原来的列表顺序不会改变。
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_lst = sorted(lst) # 对列表进行排序
print(sorted_lst) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
sorted()函数的排序方式可以使用关键字参数。例如,以下代码将对列表按照每个元素第二个字符进行排序:
lst = ["Bob", "Alice", "Charlie", "David"]
sorted_lst = sorted(lst, key=lambda s: s[1]) # 对列表进行排序
print(sorted_lst) # 输出:["Charlie", "David", "Alice", "Bob"]
列表方法list.sort()
列表也提供了sort()方法,用于在原地对列表进行排序。sort()方法不会返回一个新的列表,而是直接修改原来的列表。
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst.sort()
print(lst) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
冒泡排序
冒泡排序是一种简单的排序算法,它多次遍历待排序的列表,依次比较相邻的元素,如果前一个元素比后一个元素大,就交换它们的位置。重复多次遍历直到所有元素都已排好序。
以下是冒泡排序的实现代码:
def bubble_sort(lst):
for i in range(len(lst)-1, 0, -1):
for j in range(i):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
示例:
lst = [9, 1, 6, 8, 4, 3, 2, 0, 5, 7]
bubble_sort(lst)
print(lst) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
快速排序
快速排序是一种高效的排序算法,它通过递归地将待排序的列表分成两个子列表,其中一个列表所有元素都比另一个列表的元素小,然后不断重复这个过程,直到所有子列表只剩下一个元素为止。
以下是快速排序的实现代码:
def quick_sort(lst):
if len(lst) <= 1:
return lst
pivot = lst[0]
left, right = [], []
for x in lst[1:]:
if x < pivot:
left.append(x)
else:
right.append(x)
return quick_sort(left) + [pivot] + quick_sort(right)
示例:
lst = [9, 1, 6, 8, 4, 3, 2, 0, 5, 7]
sorted_lst = quick_sort(lst)
print(sorted_lst) # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
以上就是Python学习笔记_数据排序方法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python学习笔记_数据排序方法 - Python技术站