Python – Aplanar lista a elementos individuales

A veces, mientras trabajamos con la lista de Python, podemos tener un problema en el que necesitamos aplanar la lista, es decir, convertir una lista mixta en una aplanada. Esto puede tener aplicación en dominios que usan listas 1D como entrada. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar loop +isinstance()
La combinación de las funcionalidades anteriores se puede usar para realizar esta tarea. En esto, verificamos la instancia de la lista y la aplanamos y el resto de los elementos los agregamos a la lista bruscamente.

# Python3 code to demonstrate 
# Flatten List to individual elements
# using loop + isinstance()
  
def flatten(test_list):
    if isinstance(test_list, list):
        temp = []
        for ele in test_list:
            temp.extend(flatten(ele))
        return temp
    else:
        return [test_list]
  
# Initializing list
test_list = ['gfg', 1, [5, 6, 'geeks'], 67.4, [5], 'best']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Flatten List to individual elements
# using loop + isinstance()
res = flatten(test_list)
              
# printing result 
print ("The List after flattening : " + str(res))
Producción :

La lista original es: [‘gfg’, 1, [5, 6, ‘geeks’], 67.4, [5], ‘best’]
La lista después de aplanar: [‘gfg’, 1, 5, 6, ‘geeks’ ‘, 67.4, 5, ‘mejor’]

Método n.º 2: usarchain() + isinstance()
Esto es otra forma más en la que se puede realizar esta tarea. En esto, realizamos la tarea de iteración usando chain() y la verificación de la instancia de la lista se realiza usando isinstance().

# Python3 code to demonstrate 
# Flatten List to individual elements
# using chain() + isinstance()
from itertools import chain
  
# Initializing list
test_list = ['gfg', 1, [5, 6, 'geeks'], 67.4, [5], 'best']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Flatten List to individual elements
# using chain() + isinstance()
res = list(chain(*[ele if isinstance(ele, list) else [ele] for ele in test_list]))
              
# printing result 
print ("The List after flattening : " + str(res))
Producción :

La lista original es: [‘gfg’, 1, [5, 6, ‘geeks’], 67.4, [5], ‘best’]
La lista después de aplanar: [‘gfg’, 1, 5, 6, ‘geeks’ ‘, 67.4, 5, ‘mejor’]

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 *