列表索引超出范围

时间:2018-09-07 12:41:18

标签: python python-3.x

列表中只有一个唯一元素。 列表中有n个相似的数字。

当我尝试运行while循环时,出现超出范围的列表索引。 列表中只有一个唯一元素。

  

while(arr [0] == arr [1]):

     

IndexError:列表索引超出范围

n=int(input())
arr=[int(x) for x in input().split()]
arr.sort()
while (arr[0]==arr[1]):
    for i in range(n):
        arr.pop(0)
print(arr[0])

输入 第一行由整数n组成,n是每个组的大小。 第二行包含房间号列表中的无序元素。

5

1 2 3 6 5 4 4 2 5 3 6 1 6 5 3 2 4 1 2 5 1 4 3 6 8 4 3 1 5 6 2

输出

8

1 个答案:

答案 0 :(得分:2)

如果列表中的唯一元素位于列表的末尾,则while循环迭代足够的次数后,它将删除所有重复项,并且列表的长度为1。

此时,arr[0] == arr[1]将崩溃,因为arr[1]引用了列表的第二个元素,但是列表没有两个元素。

您可以更改while循环的条件,以使其在长度达到1时也结束:

while (len(arr) > 1 and arr[0]==arr[1]):

结果:

C:\Users\Kevin\Desktop>test.py
5
1 2 3 6 5 4 4 2 5 3 6 1 6 5 3 2 4 1 2 5 1 4 3 6 8 4 3 1 5 6 2
8