Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 2D 목록을 평면화하는 방법

<시간/>

목록은 순서가 지정되고 변경할 수 있는 모음입니다. Python에서 목록은 대괄호로 작성됩니다. 색인 번호를 참조하여 목록 항목에 액세스합니다. 음수 인덱싱은 끝에서 시작하는 것을 의미하고 -1은 마지막 항목을 나타냅니다. 시작 위치와 범위 끝 위치를 지정하여 인덱스 범위를 지정할 수 있습니다. 범위를 지정할 때 반환 값은 지정된 항목이 있는 새 목록이 됩니다.

# 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))
# 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))
# 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))
# 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))
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)
#priniting initial list  
print("Flattened List ",flatten_list(ini_list))
# printing flattened list

출력

('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('initial list ', '[[1, 2, 3], [3, 6, 7], [7, 5, 4]]')
('final_result', '[1, 2, 3, 3, 6, 7, 7, 5, 4]')
('Initial list ', [[1, 2, 3], [3, 6, 7], [7, 5, 4]])
('Flattened List ', [1, 2, 3, 3, 6, 7, 7, 5, 4])