建设网站写需求分析报告,如何做网站维护,通州建设网站,宣传片制作公司前景更多Python学习内容#xff1a;ipengtao.com 排序在计算机科学中是一项基础而关键的操作#xff0c;而Python提供了强大的排序工具来满足不同场景下的排序需求。本文将深入探讨Python中对可迭代对象进行排序的方法#xff0c;涵盖基础排序算法、sorted函数的应用、以及定制排… 更多Python学习内容ipengtao.com 排序在计算机科学中是一项基础而关键的操作而Python提供了强大的排序工具来满足不同场景下的排序需求。本文将深入探讨Python中对可迭代对象进行排序的方法涵盖基础排序算法、sorted函数的应用、以及定制排序规则和实际应用场景。 基础排序算法 首先介绍Python中常用的排序算法包括冒泡排序、插入排序、选择排序等。 冒泡排序 def bubble_sort(arr):n len(arr)for i in range(n - 1):for j in range(0, n - i - 1):if arr[j] arr[j 1]:arr[j], arr[j 1] arr[j 1], arr[j]# 示例
numbers [64, 34, 25, 12, 22, 11, 90]
bubble_sort(numbers)
print(冒泡排序结果:, numbers) 插入排序 def insertion_sort(arr):for i in range(1, len(arr)):key arr[i]j i - 1while j 0 and key arr[j]:arr[j 1] arr[j]j - 1arr[j 1] key# 示例
numbers [64, 34, 25, 12, 22, 11, 90]
insertion_sort(numbers)
print(插入排序结果:, numbers) 选择排序 def selection_sort(arr):for i in range(len(arr)):min_index ifor j in range(i 1, len(arr)):if arr[j] arr[min_index]:min_index jarr[i], arr[min_index] arr[min_index], arr[i]# 示例
numbers [64, 34, 25, 12, 22, 11, 90]
selection_sort(numbers)
print(选择排序结果:, numbers) sorted函数的应用 Python的内置函数sorted提供了一种简便而高效的排序方式。 对数字列表排序 numbers [64, 34, 25, 12, 22, 11, 90]
sorted_numbers sorted(numbers)
print(排序后的数字列表:, sorted_numbers) 对字符串列表排序 fruits [apple, banana, cherry, date, elderberry]
sorted_fruits sorted(fruits, keylen)
print(按字符串长度排序后的水果列表:, sorted_fruits) 定制排序规则 在实际应用中经常会遇到需要基于复杂规则进行排序的情况。学习如何使用key函数来指定排序规则以及如何利用lambda表达式和函数对象实现更灵活的定制排序。 对复杂对象进行定制排序 class Student:def __init__(self, name, age, grade):self.name nameself.age ageself.grade gradestudents [Student(Alice, 21, 85),Student(Bob, 20, 90),Student(Charlie, 22, 80)
]sorted_students sorted(students, keylambda x: x.grade, reverseTrue)
print(按成绩降序排序后的学生列表:, [student.name for student in sorted_students]) 多级排序 class Product:def __init__(self, name, price, rating):self.name nameself.price priceself.rating ratingproducts [Product(Laptop, 1200, 4.5),Product(Mouse, 20, 4.2),Product(Monitor, 300, 4.7)
]# 先按价格升序再按评分降序排序
sorted_products sorted(products, keylambda x: (x.price, -x.rating))
print(按价格升序、评分降序排序后的产品列表:, [product.name for product in sorted_products]) 复杂对象的排序 处理包含多个属性的复杂对象是排序中的常见任务。通过示例将演示如何在排序过程中考虑对象的多个属性以及如何实现多级排序。 class Student:def __init__(self, name, age, grade):self.name nameself.age ageself.grade gradestudents [Student(Alice, 21, 85),Student(Bob, 20, 90),Student(Charlie, 22, 80)
]# 按年龄升序年龄相同时按成绩降序排序
sorted_students sorted(students, keylambda x: (x.age, -x.grade))
print(按年龄升序、成绩降序排序后的学生列表:)
for student in sorted_students:print(fName: {student.name}, Age: {student.age}, Grade: {student.grade}) 实际应用场景 数据分析中的排序 import pandas as pddata {Name: [Alice, Bob, Charlie],Age: [25, 22, 30],Salary: [50000, 60000, 45000]}df pd.DataFrame(data)
sorted_df df.sort_values(by[Salary, Age], ascending[False, True])
print(按工资降序、年龄升序排序后的数据框:)
print(sorted_df) 多个条件的文件排序 import globfiles glob.glob(*.txt)
sorted_files sorted(files, keylambda x: (len(x), x))
print(按文件名长度升序、字典序升序排序后的文件列表:, sorted_files) 总结 在本文中我们分享了Python中对可迭代对象进行排序的多种方法和应用场景。首先通过介绍基础排序算法提供了排序操作的基础知识。随后通过sorted函数展示了一种简便而高效的排序工具覆盖了对基本类型和复杂对象的排序操作。特别是对于复杂对象演示了如何利用key参数以及多级排序规则实现灵活的排序需求。 通过实际应用场景的探讨展示了排序在数据分析、文件处理等领域的实际应用。在数据分析中使用了Pandas库进行列排序而在文件处理中展示了如何按照文件名长度和字典序对文件进行排序。这些实际案例帮助读者更好地理解排序在不同领域中的实际应用价值。 综合而言排序是计算机科学中一个基础而重要的操作而Python提供的丰富工具使得排序变得更加灵活和高效。通过学习本文不仅能够掌握排序的基本原理和算法还能够在实际项目中运用排序的各种技巧提高代码的可读性和执行效率。排序作为程序中常见的操作之一对于数据整理和处理起着至关重要的作用。 如果你觉得文章还不错请大家 点赞、分享、留言 下因为这将是我持续输出更多优质文章的最强动力 更多Python学习内容ipengtao.com 干货笔记整理 100个爬虫常见问题.pdf 太全了 Python 自动化运维 100个常见问题.pdf Python Web 开发常见的100个问题.pdf 124个Python案例完整源代码 PYTHON 3.10中文版官方文档 耗时三个月整理的《Python之路2.0.pdf》开放下载 最经典的编程教材《Think Python》开源中文版.PDF下载 点击“阅读原文”获取更多学习内容