Python 中的 Bisect 算法函数2024 年 8 月 29 日 | 阅读 6 分钟 在接下来的教程中,我们将借助 Python 编程语言中的 **bisect** 模块来学习二分算法。 理解 Python bisect 模块二分算法的目的是在列表中找到一个位置,以便在插入数据元素后能保持列表的有序性。 二分算法能够让我们在插入每个数据元素后都保持列表的有序。这是必要的,因为这样可以减少在每次插入数据元素后重复排序列表所需的开销时间。Python 在其定义中,通过 **bisect** 模块提供了二分算法。 一些重要的二分函数现在,让我们来看一些 **bisect** 模块的重要函数,它们有助于二分算法的实现。
让我们通过一些例子来理解这些函数的工作原理。 理解 bisect() 函数**bisect()** 函数用于返回排序列表中的位置,在该位置插入参数指定的数字后,可以保持结果列表的有序。**bisect()** 函数接受四个参数:需要处理的列表,需要插入的数字,需要考虑的列表起始位置,需要考虑的列表结束位置。如果数据元素已经存在于列表中,则返回插入该数据元素的右侧位置。 让我们看下面的例子来演示这一点: 示例 输出 The rightmost index to insert, so list remains sorted is: 6 说明 在上面的代码片段中,我们导入了所需的库。然后创建了一个列表并打印了一些语句。接着,我们使用了 **bisect()** 函数,指定了列表和要插入的数字,并打印了该值。 理解 bisect_left() 函数**bisect_left()** 函数用于返回排序列表中的位置,在该位置插入参数指定的数字后,可以保持结果列表的有序。**bisect_left()** 接受四个参数:需要处理的列表,需要插入的数字,需要考虑的列表起始点,需要考虑的列表结束点。如果数据元素已经存在于列表中,则返回插入该数据元素的左侧位置。 让我们看下面的代码片段来说明这一点: 示例 输出 The leftmost index to insert, so list remains sorted is: 2 说明 在上面的代码片段中,我们导入了所需的库。然后创建了一个列表并打印了一些语句。接着,我们使用了 **bisect_left()** 函数,指定了列表和要插入的数字,并打印了该值。 理解 bisect_right() 函数**bisect_right()** 函数的工作方式与 **bisect()** 函数类似。如果数据元素已经存在于列表中,则返回插入该数据元素的右侧位置。 让我们看下面的例子来演示这一点: 示例 输出 The rightmost index to insert, so list remains sorted is: 6 说明 在上面的代码片段中,我们导入了所需的库。然后创建了一个列表并打印了一些语句。接着,我们使用了 **bisect_right()** 函数,指定了列表和要插入的数字,并打印了该值。 理解 insort() 函数**insort()** 函数用于返回在将数字插入到适当位置后排序好的列表。**insort()** 函数接受四个参数:需要处理的列表,需要插入的数字,需要考虑的列表起始位置,以及需要考虑的列表结束位置。如果数据元素已存在于列表中,则数据元素将被插入到最右侧的可能位置。 让我们看下面的例子来演示这一点: 示例 输出 The list after insertion of a new data element using the insort() function is: 1 2 3 3 3 3 4 5 7 8 说明 在上面的代码片段中,我们导入了所需的库并初始化了列表。然后,我们使用 **insort()** 函数将 4 插入到适当的位置。我们打印了一些语句,使用 **for** 循环遍历列表,并将元素打印给用户。 理解 insort_left() 函数**insort_left()** 函数用于返回在将数字插入到适当位置后排序好的列表。**insort_left()** 函数接受四个参数:需要处理的列表,需要插入的数字,需要考虑的列表起始位置,以及需要考虑的列表结束位置。如果数据元素已存在于列表中,则数据元素将被插入到最左侧的可能位置。 让我们看下面的例子来演示这一点: 示例 输出 The list after insertion of a new data element using the insort_left() function is: 1 2 3 3 3 3 4 5 7 8 说明 在上面的代码片段中,我们导入了所需的库并初始化了列表。然后,我们使用 **insort_left()** 函数将 4 插入到适当的位置。我们打印了一些语句,使用 **for** 循环遍历列表,并将元素打印给用户。 理解 insort_right() 函数**insort_right()** 函数的工作方式与 **insort()** 函数类似。如果数据元素已存在于列表中,则数据元素将被插入到最右侧的可能位置。 让我们看下面的例子来演示这一点: 示例 输出 The list after insertion of a new data element using the insort_right() function is: 1 2 3 3 3 4 3 5 7 8 说明 在上面的代码片段中,我们导入了所需的库并初始化了列表。然后,我们使用 **insort_right()** 函数将 4 插入到适当的位置。我们打印了一些语句,使用 **for** 循环遍历列表,并将元素打印给用户。 |
本教程将展示如何利用Python机器学习模型,使用Sklearn的预测函数来预测结果。我们将简要总结该函数的功能,回顾其语法,然后提供使用此方法与各种机器学习模型的示例。简要概述...
5 分钟阅读
今天使用的大多数个人计算机都具有图形用户界面(GUI)。它为具有不同计算机技能水平的用户提供了简单的体验。由于其点选界面,GUI 应用程序可能需要更多资源,但它们通常更易于使用。其中之一...
阅读 6 分钟
在处理与时间相关的任务时,我们始终可以使用 Python 的内置时间模块。由于这个内置模块,有几种方法可以在代码中表示时间,包括数字、字符串和对象。它还具有其他功能,例如获取当前时间、等待...
阅读 3 分钟
我们已经知道字符串被定义为字符序列,我们可以在其上执行各种操作。在本教程中,我们将学习另一个可以使用 Python 中的字符串完成的有趣任务。在这里,我们将看到如何删除...
阅读 3 分钟
本教程包含了许多非官方库、wheel 包、二进制文件以及流行应用程序的库,其中包括 Python,这是一个有趣的主题。本教程提供了适用于官方 CPython 版本的 Python 编程语言的许多逻辑开源扩展库和 wheel 包的 64 位和 32 位 Windows 版本。
阅读 6 分钟
手动管理 Windows 系统管理活动可能会令人筋疲力尽。如果我们能设置一些 Python 代码而不是手动管理这些任务,那会怎样?在以下教程中,我们将发现一个这样的模块,它允许程序根据...
7 分钟阅读
TensorFlow 是一个用于深度学习和机器学习的开源软件库。它最初由 Google Brain 团队创建,目前由 Google TensorFlow 团队负责维护。它用于许多不同的用途,包括时间序列预测、语音和图像识别以及......
阅读 4 分钟
简介:借助 Python 包 anytree,使用树数据结构变得轻而易举。它使得在 Python 脚本中构建、导航、处理和可视化树结构变得简单。该库提供了一个灵活且可扩展的 API,允许您处理各种类型...
阅读 3 分钟
在本教程中,我们将学习 Python 中的 currying,这是一个在 Python 中比较新的概念。大多数开发者可能不熟悉这个主题。我们将解释 currying 的概念、它的用例以及如何在 Python 中实现它。让我们开始……
阅读 6 分钟
通过数据收集创建用于训练和验证我们模型的模型数据集,是提高模型性能最常见的机器学习方法。数据集的拆分比例可以是 70:30 或 80:20。留出法是最常见的交叉验证...
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India