如何在Python中合并和排序两个列表
在本教程中,我们将编写程序来使用Python对两个列表进行排序和合并。我们将使用两种方法来解决这个问题-使用另一个列表或不使用另一个空间。
使用sort()方法排序和合并两个列表
以下程序将接受两个列表,并对它们进行排序和合并。
解决方法
- 定义两个变量来分配空列表。
- 现在输入第一个列表和第二个列表的输入数目。
- 现在使用’+’运算符合并两个列表。
- 使用内置的sort()方法对新创建的列表进行排序。
让我们来看一下下面的代码实现。
示例
list1=[]
list2=[]
num1=int(input("Enter number of elements for first list:"))
for i in range(1,num1+1):
b=int(input("Enter element:"))
list1.append(b)
num2=int(input("Enter number of elements for second list:"))
for i in range(1,num2+1):
d=int(input("Enter element:"))
list2.append(d)
list3=list1+list2
list3.sort()
print("Sorted list is:",list3)
输出:
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()方法来合并两个列表。在本节中,我们将介绍一种无需创建另一个列表即可对两个列表进行排序和合并的方法。让我们理解以下示例。
示例
list1=[]
list2=[]
num1=int(input("Enter number of elements for first list:"))
for i in range(1,num1+1):
b=int(input("Enter element:"))
list1.append(b)
num2=int(input("Enter number of elements for second list:"))
for i in range(1,num2+1):
d=int(input("Enter element:"))
list2.append(d)
for i in range(len(list1)-1):
for j in range(len(list2)- 1):
if list1[i]>list2[j] and list1[i] < list2 [j+1]:
list2.insert(j+1, list1[i])
print("Sorted list is:" list2)
输出:
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的第一个和第二个元素之间插入它。