Решая упражнение на питоне, я столкнулся со странным поведением цикла for, которого не понимаю.
move_zeros(array)
должен переместить все нули массива в его конец.
def move_zeros(array):
for x in array:
if x == 0 and x is not False:
array.remove(x)
array.append(x)
return array
Он отлично работает для массивов со всеми типами элементов, но если массив содержит False, результат неверен:
move_zeros([1,2,0,1,0,1,0,3,0,1]) => [ 1, 2, 1, 1, 3, 1, 0, 0, 0, 0 ]
(правильно!)
но
move_zeros([0, 1, False, False]) => [1, False, 0, 0]
(неверно!)
False
- person Andrej Z.   schedule 02.08.2019for x in array.copy():
- person Andrej Z.   schedule 02.08.2019