2013-11-01 2 views
0

나는 여러 개의 하위 목록을 보유하고 있으며, 각 목록에는 주어진 수의 요소가 들어 있습니다. 모든 하위 목록의 모든 요소를 ​​다른 목록으로 이동해야합니다. 즉, 하위 목록에 의해 부과 된 요소 사이의 분리를 제거하십시오. 내가 파이썬에서이 작업을 수행 할 수있는 더 우아하고 간단한 방법이있을거야하위 목록의 요소를 새 목록으로 옮깁니다.

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24], [25, 26, 27, 28], [26, 30, 31, 32], [33, 34, 35, 36]] 

: 결과

a = [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]], [[17, 18, 19, 20], [21, 22, 23, 24]], [[25, 26, 27, 28], [26, 30, 31, 32], [33, 34, 35, 36]]] 

b = [] 
    for elem in a: 
     for item in elem: 
      b.append(item) 

:

무슨 뜻인지 경우 MWE입니다.

+0

여기 http://stackoverflow.com/questions/952914/making-a 참조 -flat-list-of-list-of-python – jaap

답변

2

사용 itertools.chain.from_iterable :

>>> from itertools import chain 
>>> list(chain.from_iterable(a)) 
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24], [25, 26, 27, 28], [26, 30, 31, 32], [33, 34, 35, 36]] 

Timing comparison:

enter image description here

2

이 시도 :

[item for sublist in a for item in sublist] 
+0

이것은 완벽하게 작동합니다. b 유토피아는 저자가 말했듯이 훨씬 빠른 속도로 받아 들여지는 다른 답변을 받아 들였습니다. 대단히 고마워! – Gabriel

관련 문제