Найти - Пользователи
Полная версия: Изминение в списке
Начало » Центр помощи » Изминение в списке
1
Gustman
Помогите понять, почему в этом коде после 2 цыкла (for xb in lst) если выводить lst будет 2, 4, 6, а если добавить удаление с списка будет 2, 6 ?
def modify_list(l):
    for xa in lst:
        if ((xa % 2) != 0):
            lst.remove(xa)
    for xb in lst:
        print (xb)
        lst.remove(xb)
lst = [1, 2, 3, 4, 5, 6]
dimy44
Так делать крайне нежелательно. Перед первым циклом
lst = [1, 2, 3, 4, 5, 6]
for берет первый по счету элемент, затем второй, итд, пока не пройдет все. Первый это 1, удовлетворяет условию xa % 2 != 0. Поэтому вы его удаляете. Какой теперь список? Правильно,
[2, 3, 4, 5, 6]
Следующий элемент для xa это второй по счету. Гляньте на список, и вы увидете- двойка пропущена. Дальше сами додумайте, суть я объяснил.
Gustman
После первого цыкла останется lst = 2,4,6
А второй цыкл сьедает 4.
У меня вопрос сейчас состоит в
for xb in lst:
        print (xb)
        lst.remove(xb)
ЗЫ Я пишу функцию которой на вход идет список.
lst = [1, 2, 3, 4, 5, 6]
print(modify_list(lst))
dimy44
В чемв вопрос, уточните
def modify_list(l):
    #print(l)
    for xa in lst:
        if ((xa % 2) != 0):
            lst.remove(xa)
    #print(l)
    for xb in lst:
        lst.remove(xb)
    #print(l)
    return l
lst = [1, 2, 3, 4, 5, 6]
print(modify_list(lst))
>>> [4]
так и должно быть
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB