Python: divide la string numérica en enteros de K dígitos

Dada una string, conviértala en enteros de K dígitos

Entrada : test_str = ‘457336’, K = 2
Salida : [45, 73, 36]
Explicación : Dividido en números enteros de 2 dígitos.

Entrada : test_str = ‘457336’, K = 3
Salida : [457, 336]
Explicación : Dividido en enteros de 3 dígitos.

Método #1: Usar int() + slice + loop

En esto, iteramos por string y realizamos cortes hasta K dígitos y luego realizamos la tarea de conversión a entero usando int().

Python3

# Python3 code to demonstrate working of 
# Split Numeric String into K digit integers
# Using int() + slice + loop
  
# initializing string
test_str = '457336842'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing substring
K = 3
  
res = []
for idx in range(0, len(test_str), K):
      
    # converting to int, after slicing
    res.append(int(test_str[idx : idx + K]))
  
# printing result 
print("Converted number list : " + str(res)) 
Producción

The original string is : 457336842
Converted number list : [457, 336, 842]

Método n.º 2: Usar comprensión de listas + int() + corte

Método similar al anterior, solo una abreviatura para resolver este problema.

Python3

# Python3 code to demonstrate working of 
# Split Numeric String into K digit integers
# Using list comprehension + int() + slicing
  
# initializing string
test_str = '457336842'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing substring
K = 3
  
# one liner to solve problem
res = [int(test_str[idx : idx + K]) for idx in range(0, len(test_str), K)]
  
# printing result 
print("Converted number list : " + str(res)) 
Producción

The original string is : 457336842
Converted number list : [457, 336, 842]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *