Python学习笔记_数据排序方法

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技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 如何解决iphone手机里相片要下载才能看?

    如果您的iPhone手机里的相片需要下载才能查看,以下是一些攻略和示例,供您参考: 1. 检查网络连接 如果您的iPhone手机里的相片需要下载才能查看,可能是因为您的网络连接不稳定或者速度较慢。您可以尝试连接其他网络,或者在信号较好的地方使用手机查看相片。 2. 清理手机存储空间 如果您的iPhone手机存储空间不足,可能会导致相片需要下载才能查看。您可以…

    云计算 2023年5月16日
    00
  • asp.net mvc3.0安装失败如何解决

    为了解决asp.net mvc3.0安装失败的问题,可以按照以下步骤进行操作: 1. 确认系统环境 在进行任何修复或升级之前,请先验证并升级您的系统环境。asp.net mvc3.0要求最低支持.NET Framework 4.0。确保运行的Windows版本支持或相容.NET Framework 4.0及以上。 2. 手动安装 如果您尝试通过启动程序进行安…

    云计算 2023年5月17日
    00
  • 中国云计算技术大会Container峰会议题征集

    作为中国云计算大数据领域的技术剖析与应用实践年度盛会,2016中国云计算技术大会为期两天半,以“技术与应用,趋势与实践”为主题,除了顶尖技术专家云集的Keynote演讲,还特设了“OpenStack技术峰会”、“Spark技术峰会”、“Container技术峰会”三大技术主题峰会 以及“云计算核心技术架构”、“云计算平台构建与实践”、“大数据核心技术与应用实…

    云计算 2023年4月13日
    00
  • 基于prompt tuning v2训练好一个垂直领域的chatglm-6b

    基于Prompt Tuning V2训练垂直领域的ChatGLM-6B攻略 Prompt Tuning V2是一种自然语言处理技术,可以通过给定的prompt文本来训练模型,从而提高模型的性能。本文将介绍如何使用Prompt Tuning V2训练垂直领域的ChatGLM-6B,并提供两个示例说明。 1. 环境准备 在开始训练ChatGLM-6B之前,需要准…

    云计算 2023年5月16日
    00
  • 【云计算】WAF简介、功能特性、部署方式等

    之前写了一篇《WAF防御能力评测及工具》,是站在安全运维人员选型WAF产品的角度来考虑的(优先从测试角度考虑是前职业病,毕竟当过3年游戏测试?!)。本篇文章从WAF产品研发的角度来YY如何实现一款可靠的WAF,灵感来自ModSecurity等,感谢开源。 本片文章包括三个主题 (1) WAF实现 WAF包括哪些组件,这些组件如何交互来实现WAF防御功能 (2…

    云计算 2023年4月11日
    00
  • node.js入门教程迷你书、node.js入门web应用开发完全示例

    对于“node.js入门教程迷你书、node.js入门web应用开发完全示例”的攻略,以下是完整的步骤和示例说明: 1. 准备工作 首先需要安装node.js运行环境。可以在官方网站下载对应操作系统的安装包。安装成功后,在终端输入 node -v 命令,如果能正常显示版本号,则说明安装成功。 2. 学习node.js基础 要对node.js有一个全面的了解,…

    云计算 2023年5月18日
    00
  • 三点计算圆心和半径 – 原随云

    三点计算圆心和半径             double[] x = { 338.5,397.5,275.5};            double[] y = { 199.5, 286.5, 310.5 };            double u = (y[1] – y[0]) / (x[1] – x[0]);            double v =…

    云计算 2023年4月16日
    00
  • OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 6.在计算节点上安装并配置计算服务Nova

    安装和配置计算节点这个章节描述如何在计算节点上安装和配置计算服务。 计算服务支持几种不同的 hypervisors。为了简单起见,这个配置在计算节点上使用 :KVM <kernel-based VM (KVM)>`扩展的:QEMU <Quick EMUlator (QEMU)>`作为hypervisor,支持虚拟机的硬件加速。在旧的硬…

    云计算 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部