Список Удалить Дубликаты в Python - PullRequest
0 голосов
/ 13 апреля 2020

У меня проблемы с запуском моего кода. Есть идеи, что не так с моим кодом?

from random import randint
a=[]
b=[]
dup_list=[]
nodup_list=[]
for n in range (0,10):
    a.append(randint(0,20))
    b.append(randint(0,20))
print a, "\n"
print b, "\n"

for m in range(0, len(a)-1):
    if a[m] in b:
        dup_list.append(a[m])
    else:
        nodup_list.append(a[m])

for o in range(0,len(b)-1):
    if b[o] in a:
        b.remove(b[o])
nodup_list.append(b)

print dup_list, "\n"
print nodup_list,"\n"

Я получаю сообщение об ошибке: [5, 17, 11, 18, 11, 20, 7, 16, 14, 14]

[Traceback (последний вызов был последним): Файл "/ Users / Apple / Desktop / Python / python projects / practice_python / exerc14.py", строка 29, в 5, 3, 7, 8, 11, 18, 14 , 9, 6, 18]

if b[o] in a:

IndexError: индекс списка вне диапазона

Есть идеи, почему?

1 Ответ

0 голосов
/ 13 апреля 2020

В документации python рекомендуется создавать новый список, а не повторять его при удалении. Индекс выходит за границы, поскольку список сокращается во время итерации, и поэтому индекс становится больше или равен его размеру.

...