0
0 Комментариев

Всем привет,
Пытаясь сделать задание с checkio, наткнулся на проблему —
задание заключается в удалении всех уникальных элементов
при выполнении данного цикла — удаление из списка, при списке состоящем из цифр, каждый второй раз не заходит в цикл

Я попробовал поменять ввести копию списка, полагая что изменения в самом списке приводят к сбою в цикле, но это не помогло.

Проверил на списке другого типа, такая же ошибка.

Причем ошибка появляется, только когда цикл идет по списку, который передается в функцию, если список берется извне, то ошибки нету. Список в процессе цикла не меняется. Почему тогда происходит ошибка?

*Питон я изучать начал буквально недавно, и возможно ответ лежит на поверхности, но логически я до него дойти не могу, а разобраться интересно.

def checkio(data):
 
    data1 = data # копия списка во избежание изменений
 
    print (len(data1)) # определяет длину списка - всегда правильно
 
    for i in data: #заменить на fruits
 
        print (data.count(i)) # не выводит каждый второй элемент передаваемого списка
 
        if data.count(i) == 1:
 
            data1.remove(i)
 
    return data1
 
    fruits = ['banana', 'apple',  'mango'] # список строк для проверки
 
    data2 = [1, 2, 3] # исходный список
 
    print (checkio(data2))


Добавить комментарий