python简单的归并

已知数组A和B各有m、n个元素,且元素按值非递减排列,现要求把A和B归并为一个新的数组C,且C中的数据元素仍然按值非递减排列。
例如,若A=(3 5 8 11),B=(2 6 8 9 11 15 20)
则C=(2 3 5 6 8 8 9 11 11 15 20)

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试数据输入两行,其中第一行首先输入A的元素个数m(1≤m≤100),然后输入m个元素。第2行首先输入B的元素个数n(1≤n≤100),然后输入n个元素。

输出格式:
对于每组测试数据。分别输出将A、B合并后的数组C的全部元素。输出的元素之间以一个空格分隔(最后一个数据之后没有空格)。

输入样例:
1
4 3 5 8 11
7 2 6 8 9 11 15 20

输出样例:
2 3 5 6 8 8 9 11 11 15 20

以注释的方式给解释,你参考一下,按题目要求应该是需要支持多组数据合并的,只不过举例是两组,输入样例T应该不能为1吧:

T = int(input("请输入测试数据的组数:"))  #输入要合并的组数T,直接转int
test_data_arr = [] #记录测试数据数组
for i in range(T):
    data_str = input(f"请输入第{i+1}组测试数据:") #输入测试数据元素个数以及各元素
    test_data_arr.append([int(n) for n in data_str.split(' ')[1:]]) #用空格分割,去除第一个元素,并转为数字数组放到test_data_arr中
print(test_data_arr)
new_arr = [] 
for data in test_data_arr: #遍历测试数据并合并数组
    new_arr = new_arr+data
new_arr.sort() #合并后的数组升序排列
for i in new_arr: #遍历数组打印,以空格结尾
    print(i, end=' ')
print("\b ") #回退一个空格

img


中间打印了一下中间状态的数组做对比,如有帮助,请采纳!

描述太多,讲下思路:
对A与B分别小到大排序,合并如下:

A = [3, 5, 8, 11]
B = [2, 6, 8, 9, 11, 15, 20]
A.sort()
B.sort()

i, j =0, 0
re = []
while i < len(A) and j < len(B):
    if A[i] <= B[j]:
        re.append(A[i])
        i += 1
    else:
        re.append(B[j])
        j += 1

if i ==len(A):
    print(re + B[j:])
else:
    print(re + A[i:])