Форум сайта python.su
Помогите понять, почему в этом коде после 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]
Офлайн
Так делать крайне нежелательно. Перед первым циклом
lst = [1, 2, 3, 4, 5, 6]
[2, 3, 4, 5, 6]
Офлайн
После первого цыкла останется 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))
Отредактировано Gustman (Дек. 4, 2014 18:12:18)
Офлайн
В чемв вопрос, уточните
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]
Офлайн