# How to relocate the zeros to the end of the list?

edit retag close merge delete

Sort by ยป oldest newest most voted

One possible way to relocate the zeros to the end of a list is as follows:

1. Create an empty list to hold the non-zero elements of the original list.
2. Traverse the original list element by element.
3. If the current element is non-zero, append it to the empty list created in step 1.
4. After completing the traversal, append the necessary number of zeros to the end of the non-zero list to match the length of the original list.
5. Return the modified list.

Here is the Python code that implements the above algorithm:

def move_zeros_to_end(lst):
non_zeros = []
zeros_count = 0
for el in lst:
if el != 0:
non_zeros.append(el)
else:
zeros_count += 1
result = non_zeros + [0] * zeros_count
return result


Example usage:

>>> move_zeros_to_end([1, 0, 3, 0, 0, 2, 8, 0])
[1, 3, 2, 8, 0, 0, 0, 0]

>>> move_zeros_to_end([0, 0, 0, 0, 0, 0])
[0, 0, 0, 0, 0, 0]

>>> move_zeros_to_end([1, 2, 3])
[1, 2, 3]

more