编写 Python 程序根据其他列表对列表进行排序2024 年 8 月 29 日 | 5 分钟阅读 在本教程中,我们将编写 Python 程序,根据给定的另一个数组对数组进行排序。在此问题中,我们有两个大小为 N 和 M 的数组,我们需要对第一个数组进行排序,以便第一个数组中元素的所有相对位置与第二个数组中元素的位置相同。让我们看下面的例子- 示例 - 1 输入 输出 [5, 5, 3, 3, 1, 1, 1, 2, 9] 说明 a1 的第一个数组元素根据 a2 中元素的位置进行排序。所以 5 先出现,然后是 3,然后是 1,最后是 2。现在,我们按升序附加剩余的元素。 示例 - 2 输入 输出 [1, 1, 2, 2, 3, 3] 解释 - 由于 a1 中没有 a2 中存在的元素,因此我们无法根据 a2 对 a1 进行排序。因此,我们将 a1 中的元素按非递减顺序排序。 让我们进入解决方案部分。 解决方案 - 暴力法让我们理解下面的代码片段- 示例 - 输出 [5, 5, 3, 3, 1, 1, 1, 2, 9] 解释 - 在上面的代码中,我们定义了一个名为 sorted_array() 的函数,该函数接受两个数组 a1 和 a2 作为输入。该函数旨在根据 a2 指定的顺序对 a1 中的元素进行排序。
方法 - 2让我们来看另一个例子。 示例 - 输出 [1, 1, 1, 2, 3, 3, 5, 5, 9] 解释 - 在上面的代码中,我们定义了 sort_array() 函数,它接受两个参数:arr(要排序的数组)和 order(用于排序的参考数组)。 在 sort_array 函数中,我们创建一个名为 order_dict 的字典来存储 order 数组中元素的索引。此字典将帮助我们确定 arr 中每个元素的排序顺序。 我们定义了一个名为 custom_key 的自定义排序键函数,该函数将 arr 中的元素作为参数。sorted 函数将使用此函数来确定排序顺序。 在 custom_key 函数内部,我们首先检查元素是否存在于 order_dict 字典中。如果存在,则返回 order 数组中的相应索引。这确保了 arr 中与 order 中的顺序匹配的元素将按相应顺序排序。 如果元素在 order_dict 字典中未找到,则表示与 order 数组不匹配。在这种情况下,我们将一个更高的索引分配给该元素,方法是为其加上 len(order)。这确保了 arr 中未匹配的元素将按非递减顺序排在匹配元素之后。 最后,我们使用 sorted 函数,以 custom_key 函数作为排序键,对 arr 数组进行排序。排序后的数组存储在 sorted_arr 变量中。 然后从 sort_array 函数返回 sorted_arr。 最后,我们打印 sorted_a1 数组,其中包含根据 a2 的顺序排序的 a1,未匹配的元素按非递减顺序排序。 |
ipware 模块是一个 Python 库,它在 Web 应用程序的上下文中提供了有关客户端 IP 地址信息的实用工具。它包括从各种来源(如 HTTP 标头和 WSGI 环境)检测客户端 IP 地址的函数,并提供...
阅读9分钟
我们都在学生时代学过素数,如果有人忘记了也不用担心。素数基本上是只能被1或自身整除的自然数,素数的另一个定义是...
11 分钟阅读
图形用户界面(GUI)是尖端软件包的重要组成部分,它允许客户以直观且对用户友好的方式与软件包进行交互。Python 是一种灵活的编程语言,提供了各种 GUI 框架来构建交互式应用程序。其中,PyQt5 以其流行的...
阅读 4 分钟
作为数据科学家,我们可能不拘泥于数据格式。PDF,即便携式文档格式文件的简称,是很好的数据来源。有许多组织只以 PDF 格式发布他们的数据。随着人工智能的扩展,我们需要更多的数据来进行预测和...
阅读 3 分钟
在 Python 中,列表包含多种数据,包括字符串和整数。所有项目都用逗号分隔;列表通过将值括在方括号中来表示。我们可以使用 Python 内置的 len() 方法来确定列表的长度。要计算列表的长度...
阅读 3 分钟
电子邮件验证是任何需要用户输入电子邮件地址的应用程序中的重要步骤。不准确或无效的电子邮件地址可能导致通信中断、数据丢失和任何系统效率低下。Python 提供了几种验证电子邮件地址的方法,包括正则表达式、内置...
阅读 4 分钟
Python 是一种灵活且高级的编程语言,已应用于科学技术的几乎所有领域。在电气和电子工程领域,Python 已成为不可或缺的工具。其简洁性、可读性和深入的库生态系统使其成为理想的...
阅读 4 分钟
红黑树 红黑树是一种二叉搜索树,具有“几乎”平衡的额外属性。红黑树中的每个节点都有一个颜色,红色或黑色,这些颜色用于在插入和删除期间保持平衡。删除:BST 删除:开始于...
阅读 10 分钟
什么是特殊变量?在 Python 中,有些变量使用双下划线定义,它们被称为 Dunder 或魔术方法。它们用于代码中的特殊目的,因此被称为特殊变量。例如:__init__ ,...
阅读 3 分钟
二叉堆是 Python 中一种重要的非线性数据结构。堆是一棵完全树。堆是一种名为优先队列的数据结构的高效实现。W. J. Williams 于 1964 年引入了二叉堆,其主要目的是实现...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India