Python – Reformar elementos de K dígitos

Dada la lista de Python, reforme el elemento para tener K dígitos en un solo elemento.

Entrada : test_list = [223, 67, 332, 1, 239, 2, 931], K = 2 
Salida : [22, 36, 73, 32, 12, 39, 29, 31] 
Explicación : Elementos reformados para asignar 2 dígitos a cada elemento.

Entrada : test_list = [223, 67, 3327], K = 3 
Salida : [223, 673, 327] 
Explicación : Elementos reformados para asignar 3 dígitos a cada elemento. 

Método n.º 1: Usar rebanar + unir() + bucle

En esto, realizamos la tarea de unir todos los elementos en una sola string, luego cortamos K dígitos y reconvertimos a la lista. 

Python3

# Python3 code to demonstrate working of
# Reform K digit elements
# Using slicing + join() + loop
  
# initializing list
test_list = [223, 67, 332, 1, 239, 2, 931]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# converting to string
temp = ''.join([str(ele) for ele in test_list])
  
# getting K digit slices
res = []
for idx in range(0, len(temp), K):
    res.append(int(temp[idx: idx + K]))
  
# printing result
print("Reforming K digits : " + str(res))
Producción

The original list is : [223, 67, 332, 1, 239, 2, 931]
Reforming K digits : [22, 36, 73, 32, 12, 39, 29, 31]

Método n.º 2: usar la comprensión de listas + unir()

En esto, la tarea de reformar la lista se realiza utilizando la comprensión de listas. 

Python3

# Python3 code to demonstrate working of
# Reform K digit elements
# Using list comprehension + join()
  
# initializing list
test_list = [223, 67, 332, 1, 239, 2, 931]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# converting to string
temp = ''.join([str(ele) for ele in test_list])
  
# getting K digit slices
# using 1 liner list comprehension
res = [int(temp[idx: idx + K]) for idx in range(0, len(temp), K)]
  
# printing result
print("Reforming K digits : " + str(res))
Producción

The original list is : [223, 67, 332, 1, 239, 2, 931]
Reforming K digits : [22, 36, 73, 32, 12, 39, 29, 31]

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 *