es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Iterando sobre una lista de enteros y uniendo elementos en base a una condición.

Estoy intentando iterar sobre una lista de enteros y unirlos en base a una condición utilizando la biblioteca estándar de Python. Por ejemplo, tengo una lista de enteros que se ve así:

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]

Me gustaría recorrer esta lista y combinar valores para que el resultado sea una cadena de la forma:

result = '000-20-4-60-8000-1-9'

(donde los guiones están incluidos). La condición para esto es que si el número anterior no es igual a cero, se debe colocar un guion delante de él. Si el siguiente valor es igual a cero, se une al final del valor anterior.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr este resultado, se puede usar un bucle for para iterar a través de la lista de enteros y aplicar las condiciones necesarias para generar una nueva cadena. Aquí hay un ejemplo de código para lograr esto:

    listaDeEnteros = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
    
    resultado = str(listaDeEnteros[0])
    for i in range(1, len(listaDeEnteros)):
        if listaDeEnteros[i-1] != 0:
            resultado += '-'
        if listaDeEnteros[i] == 0:
            resultado += str(listaDeEnteros[i])
        else:
            resultado += str(listaDeEnteros[i])
    
    print(resultado)
    

    Esto dará como resultado el resultado deseado:

    '000-20-4-60-8000-1-9'
    

    Comenzamos inicializando una cadena con el primer elemento de la lista. Luego, en el bucle for, verificamos si el elemento anterior no es cero y, de ser así, agregamos un guión a la cadena de resultado. Luego verificamos si el elemento actual es cero y, de ser así, lo agregamos al elemento anterior. De lo contrario, agregamos el elemento actual como una nueva subcadena a la cadena de resultado.

    Tenga en cuenta que convertimos los enteros en cadenas utilizando la función str() para poder concatenarlos y generar la cadena final.

Comments are closed.