Dada una lista 2D , escriba un programa Python para convertir la lista dada en una lista aplanada.
Método #1: Usar chain.iterable()
Python3
# Python code to demonstrate # converting 2d list into 1d list # using chain.from_iterables # import chain from itertools import chain ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d # using chain.from_iterables flatten_list = list(chain.from_iterable(ini_list)) # printing flatten_list print ("final_result", str(flatten_list))
Producción:
initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] final_result [1, 2, 3, 3, 6, 7, 7, 5, 4]
Método #2: Usar la comprensión de listas
Python3
# Python code to demonstrate # converting 2d list into 1d list # using list comprehension # import chain from itertools import chain ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d # using list comprehension flatten_list = [j for sub in ini_list for j in sub] # printing flatten_list print ("final_result", str(flatten_list))
Producción:
initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] final_result [1, 2, 3, 3, 6, 7, 7, 5, 4]
Método #3: Usar functools.reduce
Python3
# Python code to demonstrate # converting 2d list into 1d list # using functools.reduce # import functools from functools import reduce ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d # using functools.reduce flatten_list = reduce(lambda z, y :z + y, ini_list) # printing flatten_list print ("final_result", str(flatten_list))
Producción:
initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] final_result [1, 2, 3, 3, 6, 7, 7, 5, 4]
Método #4: Usar sum
sum tiene un argumento opcional: sum(iterable [, start])
Python3
# Python code to demonstrate # converting 2d list into 1d list # using sum ini_list = [[1, 2, 3], [3, 6, 7], [7, 5, 4]] # printing initial list print ("initial list ", str(ini_list)) # converting 2d list into 1d flatten_list = sum(ini_list, []) # printing flatten_list print ("final_result", str(flatten_list)) # This code is contributed by # Mayank Chaudhary - chaudhary_19
Producción:
initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] final_result [1, 2, 3, 3, 6, 7, 7, 5, 4]
Método #5: Usar lambda
Python3
#Python 3 code to flatten nested list #contributed by S Lakshman Rao - kaapalx ini_list=[[1, 2, 3], [3, 6, 7], [7, 5, 4]] #Using lambda flatten_list = lambda y:[x for a in y for x in flatten_list(a)] if type(y) is list else [y] print("Initial list ",ini_list) #printing initial list print("Flattened List ",flatten_list(ini_list)) # printing flattened list
Producción:
Initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] Flattened List [1, 2, 3, 3, 6, 7, 7, 5, 4]
Método #6: Usando numpy
Python3
#Python 3 code to flatten nested list #Contributed by S Lakshman Rao - kaapalx import numpy ini_list=[[1, 2, 3], [3, 6, 7], [7 ,5, 4]] print("Initial list ",ini_list) #Printing Initial list print("Flattened List ",list(numpy.concatenate(ini_list).flat)) #Using numpy to flatten list and printing the result
Producción:
Initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] Flattened List [1, 2, 3, 3, 6, 7, 7, 5, 4]
Método #7: Usando el método extend()
Python3
#Python 3 code to flatten nested list ini_list=[[1, 2, 3],[3, 6, 7],[7 ,5, 4]] print("Initial list ",ini_list) #Printing Initial list res=[] for i in ini_list: res.extend(i) print("Flattened List ",res)
Producción
Initial list [[1, 2, 3], [3, 6, 7], [7, 5, 4]] Flattened List [1, 2, 3, 3, 6, 7, 7, 5, 4]
Publicación traducida automáticamente
Artículo escrito por garg_ak0109 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA