Python代码第十行为什么报错


n=int(input())
a=input().split()
lis=[]
for m in range(1,n):
    a=sorted(a)
for q in range(1,n+1):
    lis.append(q)
for i in range(1,n):
    while (a[i] in lis):
        lis.remove(a[i])
print(lis)

运行报错
第十行
IndexError: list index out of range,改了while前for循环的值也不行,不明白哪里出现的问题。请求大佬支援。万分感谢!

第二行的a只有一个元素,所以索引会超出范围。

正确如下,你用split时a列表中的元素为str类型,不是int,需要转换为int
n=int(input())
a=input().split()
a = [int(x) for x in a]
lis=[]
a=sorted(a)
for q in range(1,n+1):
lis.append(q)
for i in range(0,n-1):
while a[i] in lis:
lis.remove(a[i])
print(lis)