Задача: написать функцию, которая получает список и переставляет все нули в нем в конец.
Например,
move_zero((“c”,“d”,0,1,False,0,1)) должна вернуть ('c', ‘d’, 1, False, 1, 0, 0).
Проблема следующая:
a = [9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9] def move_zeros(array): zIndex = [] zCount = 0 for i in array: if i is not 0 and i is not 0.0: zIndex.append(i) else: zCount += 1 return zIndex + [0]*zCount print(move_zeros(a))
Но при этом, если пишу тоже самое вне функции:
c = [] for i in a: if i is not 0 and i is not 0.0: c.append(i) print(c)

В упор не вижу в чем разница. Похоже, логическое выражение в if неправильное, но оно так-то одинаковое…