【发布时间】:2019-10-27 11:50:20
【问题描述】:
代码
对行排序的数组进行排序 a 的大小为 m,b 的大小为 n
t=int(input())
for i in range(0,t):
n,m,k=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
j=0
x=0
y=0
c=[]
while x!=m and y!=n:
if a[x]<b[y]:
c.append(a[x])
x+=1
#j+=1
elif a[x]==b[y]:
c.append(a[x])
x+=1
y+=1
#j+=1
else:
c.append(b[y])
y+=1
while x<m:
c.append(a[x])
x+=1
while y<n:
c.append(b[y])
y+=1
错误:
c.append(b[y]) IndexError: 列表索引超出范围
这是我遇到的错误以及为什么会这样。 我什至还没有定义数组 c 的大小,所以为什么会出现问题
【问题讨论】:
-
我没有收到错误,但想知道如果 x[x]==b[y],为什么 x 和 y 都会递增(即 x+=1 和 y+=1)。似乎您可以删除此条件并将其上方的条件从 a[x]
-
看起来
b数组的大小不是n,但如果您不向我们展示说明b大小的代码,我们将无法对其进行审核。另外,从你的身份来看,还不清楚每个循环中的内容。