Python for remove()函数索引超出范围错误

Python for remove()函数索引超出范围错误,python,Python,执行此代码时出现“索引超出范围”错误。请帮我做这个 arr = [1,2,3,4,5,6,5,6,4,3,2,5,5,5,5,5,5] for i in range(len(arr)): for j in range(i+1,len(arr)): if (arr[i]==arr[j]): arr.remove(arr[j]) 当代码运行时,它会删除一些元素,但是for循环中的len(arr)不会更新,因为它将在第一次运行时分配,并且将保持不变,

执行此代码时出现“索引超出范围”错误。请帮我做这个

arr = [1,2,3,4,5,6,5,6,4,3,2,5,5,5,5,5,5]

for i in range(len(arr)):
    for j in range(i+1,len(arr)):
        if (arr[i]==arr[j]):
            arr.remove(arr[j])

当代码运行时,它会删除一些元素,但是for循环中的
len(arr)
不会更新,因为它将在第一次运行时分配,并且将保持不变,直到超出范围

使用while循环修复此问题

arr = [1,2,3,4,5,6,5,6,4,3,2,5,5,5,5,5,5]

i = 0
while i < len(arr):
  j = i + 1
  while j < len(arr):
     if arr[i] == arr[j]:
        del arr[j]
     else:
        j += 1
  i += 1
print(arr)

当代码运行时,它会删除一些元素,但是for循环中的
len(arr)
不会更新,因为它将在第一次运行时分配,并且将保持不变,直到超出范围

使用while循环修复此问题

arr = [1,2,3,4,5,6,5,6,4,3,2,5,5,5,5,5,5]

i = 0
while i < len(arr):
  j = i + 1
  while j < len(arr):
     if arr[i] == arr[j]:
        del arr[j]
     else:
        j += 1
  i += 1
print(arr)


如果要删除重复的元素,可以使用
set(arr)

如果要删除重复的元素,可以使用
set(arr)

索引超出范围表示试图访问数组中不存在的索引。在大多数语言中,索引从0开始,因此如果您尝试访问数组“长度”处的索引,您将始终遇到超出范围的错误。请尝试length-1。非常感谢您的replayIndex超出范围意味着您正在尝试访问数组中不存在的索引。在大多数语言中,索引从0开始,因此如果您尝试访问数组“长度”处的索引,您将始终遇到超出范围的错误。请尝试长度1。非常感谢您的重播谢谢您的重播如果这有帮助,您可以接受我的答案吗?是的,接受,但答案部分正确。代码不起作用。请您再试一次。如果您能提供您试图实现的详细信息,我可以帮助您我正在尝试从列表中删除重复项。有其他方法可以删除,但为什么不起作用。非常感谢您的重播。如果这有帮助,您可以接受我的回答吗?是的,已接受,但答案部分正确。代码不起作用。请再试一次。如果您能详细说明您正在尝试实现的目标,我可以帮助您尝试从列表中删除重复项。有其他方法可以删除,但为什么不起作用。非常感谢您的重播谢谢您的重播