简体   繁体   中英

List Remove Duplicates in Python

I'm having trouble getting my code to run. Any idea what is wrong with my code?

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"

I keep getting the error: [5, 17, 11, 18, 11, 20, 7, 16, 14, 14]

[Traceback (most recent call last): File "/Users/Apple/Desktop/Python/python projects/practice_python/exercise14.py", line 29, in 5, 3, 7, 8, 11, 18, 14, 9, 6, 18]

if b[o] in a:

IndexError: list index out of range

Any ideas why?

It's recommended in the python documentation to create a new list instead of iterating while removing. The index is out of bounds because the list is shortened during iteration and so the index becomes greater than or equal to its size.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM