# 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 +  * 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