如何在 Python 中合并和排序两个列表

2024 年 8 月 29 日 | 阅读 3 分钟

在本教程中,我们将编写程序来使用 Python 对两个列表进行排序和合并。我们将通过两种方法来解决这个问题——使用另一个列表或不使用额外的空间。

使用 sort() 方法排序和合并两个列表

下面的程序将对两个列表进行排序和合并。

解决方案方法

  • 定义两个变量来分配空列表。
  • 现在输入第一个和第二个列表的输入数量。
  • 现在使用 '+' 运算符合并两个列表。
  • 使用内置的 sort() 方法对新创建的列表进行排序。

让我们看看以下代码实现。

示例 -

输出

Enter number of elements for first list:5
Enter element: 2
Enter element: 3
Enter element: 1
Enter element: 5
Enter element: 4
Enter number of elements for second list: 5
Enter element: 14
Enter element: 13
Enter element: 11
Enter element: 12
Sorted list is: [1, 2, 3, 4, 5, 11, 12, 13, 14, 15]

解释 -

在上面的代码中,我们初始化了两个空列表 list1 和 list2,它们用来存放元素。num 变量存储了 list1 和 list2 中的元素数量。然后,用户必须通过 for 循环逐个输入列表元素,并将它们存储到列表中。'+' 运算符合并了两个列表,sort() 方法将列表按升序排序。最后,我们打印了排序后的列表。

不使用额外空间排序和合并两个列表

在前面的例子中,我们通过创建一个新列表然后使用 sort() 方法来合并两个列表。在本节中,我们将不创建另一个列表来排序和合并两个列表。让我们来理解下面的例子。

示例 -

输出

Enter number of elements for first list: 4
Enter element: 10
Enter element: 12
Enter element: 17
Enter element: 9
Enter number of elements for first list: 4
Enter element: 5
Enter element: 18
Enter element: 20
Enter element: 89
Sorted list is: [5, 10, 12, 17, 18, 20, 89]

解释 -

在上面的代码中,我们实现了创建两个列表的相同功能。外层循环遍历 list1,内层循环遍历第二个列表,直到外层循环终止。但是,我们没有创建新的排序列表,而是在排序后将元素附加到 list2 中。它检查条件,如果 list1 的第一个元素大于 list2 并且小于 list2 的第二个元素。然后,它将该元素插入到 list2 中 list2 的第一个和第二个元素之间。


下一个主题Python 中的元字符