列表中只有一个唯一元素。 列表中有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
答案 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