Dada una lista de enteros, escriba un programa en Python para convertir la lista dada en un solo entero.
Ejemplos:
Input : [1, 2, 3] Output : 123 Input : [55, 32, 890] Output : 5532890
Existen múltiples enfoques posibles para convertir la lista dada en un solo número entero. Vamos a ver cada uno por uno.
Enfoque n.° 1: método ingenuo
Simplemente itere cada elemento de la lista e imprímalos sin espacios entre ellos.
# Python3 program to convert a list # of integers into a single integer # creating a list lst = [12, 15, 17] # iterating each element for i in lst: print(i, end="")
Producción:
121517
Enfoque #2: Usarjoin()
Usa el join()
método de Python. Primero convierta la lista de enteros en una lista de strings (como join()
funciona solo con strings). Luego, simplemente únete a ellos usando el join()
método. Se necesita una complejidad de tiempo de O(n)
.
# Python3 program to convert a list # of integers into a single integer def convert(list): # Converting integer list to string list s = [str(i) for i in list] # Join list items using join() res = int("".join(s)) return(res) # Driver code list = [1, 2, 3] print(convert(list))
Producción:
123
Enfoque #3: Usarmap()
Otro enfoque para convertir una lista de múltiples enteros en un solo entero es usar map()
la función de Python con la función str para convertir la lista de enteros en una lista de strings. Después de esto, únelos en la string vacía y luego vuelve a convertirlos en enteros.
# Python3 program to convert a list # of integers into a single integer def convert(list): # Converting integer list to string list # and joining the list using join() res = int("".join(map(str, list))) return res # Driver code list = [1, 2, 3] print(convert(list))
Producción:
123
Enfoque #4: Multiplicar por la potencia correspondiente de 10
Una forma más matemática, que no requiere convertir la lista de enteros en una lista de strings, es multiplicar cada elemento entero con su correspondiente potencia de 10 y luego resumirlo. Se necesita una complejidad de tiempo de O(n)
.
# Python3 program to convert a list # of integers into a single integer def convert(list): # multiply each integer element with its # corresponding power and perform summation res = sum(d * 10**i for i, d in enumerate(list[::-1])) return(res) # Driver code list = [1, 2, 3] print(convert(list))
Producción:
123
Una pequeña variación de este programa conduce a menos cálculos en el cálculo de la suma, es decir, utilizando reduce()
. Esto hace uso de la regla de Horner, que factoriza el polinomio que representa el número para reducir el número de multiplicaciones.
res = functools.reduce(lambda total, d: 10 * total + d, list, 0)
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA