如何在python中从列表中删除重复值

d4so4syb  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(406)

当我执行代码时,它显示错误列表索引超出范围

array = [1, 22, 22, 3, 14, 14, 24, 5]
j = 0
i = 0
list1 = []
array.sort()
for i in range(0, len(array)):
    if array[i] != array[i + 1]:
        list1.append(array[i])

for i in range(len(list1)):
    print(list1[i])
llmtgqce

llmtgqce1#

如果您不介意的顺序,您可以将其转换为 set 然后返回到 list 这样地:

array = [1, 22, 22, 3, 14, 14, 24, 5]
array = list(set(array))
print(array)

输出: [1, 3, 5, 14, 22, 24]

vu8f3i0k

vu8f3i0k2#

您需要迭代列表的长度-1。
当循环到达列表的最后一个元素时, i+1 甚至没有。您正在尝试获取一个不存在的元素,或者该元素在列表中不存在。
因此,它引发了错误。
你应该这样做

array = [1, 22, 22, 3, 14, 14, 24, 5]
j = 0
i = 0
list1 = []
array.sort()
for i in range(0, len(array)-1):
    if array[i] != array[i + 1]:
        list1.append(array[i])

for i in range(len(list1)):
    print(list1[i])

不过,还有其他选择。
例子

array = [1, 22, 22, 3, 14, 14, 24, 5]
arr=list(set(array))

或者你可以使用 OrderedDict ```
from collections import OrderedDict
array = [1, 22, 22, 3, 14, 14, 24, 5]
arr=list(OrderedDict.fromkeys(array))

相关问题