Python: conversión de tipo en lista anidada y mixta

Al trabajar con listas de Python, debido a su naturaleza heterogénea, podemos tener un problema en el que necesitamos convertir el tipo de datos de cada elemento anidado de la lista en un tipo particular. En la lista mixta, esto se vuelve complejo. Vamos a discutir cierta forma en que se puede realizar esta tarea.

Entrada : test_list = [(‘7’, [‘8’, (‘5’, )])]
Salida : [(7, [8, (5, )])]

Entrada : test_list = [‘6’]
Salida : [6]

Método: Usar recursividad +isinstance()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, usamos isinstance() para obtener el tipo de datos del elemento de la lista, y si es su contenedor, los elementos internos se recurren para realizar la conversión.

# Python3 code to demonstrate working of 
# Type conversion in Nested and Mixed List
# Using recursion + isinstance()
  
# helper_fnc
def change_type(sub):
    if isinstance(sub, list):
        return [change_type(ele) for ele in sub]
    elif isinstance(sub, tuple):
        return tuple(change_type(ele) for ele in sub)
    else:
        return int(sub)
          
# initializing list
test_list = ['6', '89', ('7', ['8', '10']), ['11', '15']]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Type conversion in Nested and Mixed List
# Using recursion + isinstance()
res = change_type(test_list)
  
# printing result 
print("Data after type conversion : " + str(res)) 
Producción :

The original list is : ['6', '89', ('7', ['8', '10']), ['11', '15']]
Data after type conversion : [6, 89, (7, [8, 10]), [11, 15]]

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 *