Mueva todos los ceros al final de la array usando List Comprehension en Python

Dada una array de números aleatorios, Empuje todos los ceros de una array dada al final de la array. Por ejemplo, si las arrays dadas son {1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0}, debe cambiarse a {1, 9, 8, 4, 2, 7, 6, 0, 0, 0, 0}. El orden de todos los demás elementos debe ser el mismo. La complejidad de tiempo esperada es O(n) y el espacio extra es O(1). Ejemplos:

Input :  arr = [1, 2, 0, 4, 3, 0, 5, 0]
Output : arr = [1, 2, 4, 3, 5, 0, 0, 0]

Input : arr  = [1, 2, 0, 0, 0, 3, 6]
Output : arr = [1, 2, 3, 6, 0, 0, 0]

Tenemos una solución existente para este problema, consulte Mover todos los ceros al final del enlace de la array. Resolveremos este problema en python usando List Comprehension en una sola línea de código. 

Implementación:

Python

# Function to append all zeros at the end
# of array
def moveZeros(arr):
     
    # first expression returns a list of
    # all non zero elements in arr in the
    # same order they were inserted into arr
    # second expression returns a list of
    # zeros present in arr
    return [nonZero for nonZero in arr if nonZero!=0] + \
        [Zero for Zero in arr if Zero==0]
 
# Driver function
if __name__ == "__main__":
    arr = [1, 2, 0, 4, 3, 0, 5, 0]
    print (moveZeros(arr))
Producción

[1, 2, 4, 3, 5, 0, 0, 0]

Este artículo es una contribución de Shashank Mishra (Gullu) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *