工作中经常遇到一堆杂乱的数据,比如销售记录、学生成绩或者文件列表,手动排太费劲。这时候用Python写几行代码就能搞定,效率直接拉满。
冒泡排序:最基础的排法,适合理解原理
虽然慢,但逻辑简单,新手容易上手。比如你有一组考试分数要从小到大排:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
scores = [85, 92, 78, 90, 88]
print(bubble_sort(scores))快速排序:处理大数据更高效
平时处理上千条数据时,冒泡就扛不住了。快速排序递归拆分,速度快很多。像整理服务器日志时间戳就很合适:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr)//2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
logs_time = [1324, 1231, 1456, 1123, 1300]
print(quick_sort(logs_time))内置sorted函数:日常用最省事
其实大多数时候根本不用自己写算法。Python自带的sorted函数又快又稳,支持列表、字典等各种类型。比如按姓名首字母排员工名单:
employees = ['张伟', '李娜', '王强', '刘芳']
print(sorted(employees))要是想按成绩从高到低排,加个参数就行:
students = [{'name': '小明', 'score': 88}, {'name': '小红', 'score': 95}]
sorted_students = sorted(students, key=lambda x: x['score'], reverse=True)
print(sorted_students)这些方法在调试程序输出异常、分析日志顺序错乱时特别有用。哪天发现导出的报表顺序不对,拿这段代码一跑,问题立马定位。