리스트 안의 리스트를 단일 리스트로 만들기
문제 설명
다수의 사용자들이 프로그래밍을 하다가 자주 부딪히는 문제 중 하나는 ‘리스트 안에 있는 리스트를 단일 리스트로 어떻게 변환할 수 있을까?’입니다. 예를 들어, [[1, 2, 3], [4, 5], [6, 7, 8]]
라는 리스트를 [1, 2, 3, 4, 5, 6, 7, 8]
과 같은 단일 리스트로 만들고 싶을 때가 있습니다.
파이썬에서의 해결 방법
파이썬에서는 이 문제를 해결하기 위한 여러 가지 방법이 있습니다.
리스트 컴프리헨션(List Comprehension) 사용
리스트 컴프리헨션은 리스트를 간결하게 생성할 수 있는 방법입니다. 아래의 코드를 보면 이해가 더 쉬울 것입니다.
1
2
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flat_list = [elem for sublist in nested_list for elem in sublist]
flat_list
는 이제 [1, 2, 3, 4, 5, 6, 7, 8]
이 됩니다.
extend()
메소드 사용
extend()
메소드를 사용하면 기존 리스트에 다른 리스트의 원소를 추가할 수 있습니다.
1
2
3
4
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flat_list = []
for sublist in nested_list:
flat_list.extend(sublist)
itertools.chain
함수 사용
itertools
라이브러리에 있는 chain
함수도 사용할 수 있습니다. 이 함수는 여러 개의 리스트를 연결하여 하나의 리스트로 만들어 줍니다.
1
2
3
from itertools import chain
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flat_list = list(chain(*nested_list))
정리
리스트 안의 리스트를 단일 리스트로 만드는 방법은 다양합니다. 상황과 필요에 따라 적절한 방법을 선택하여 사용하면 됩니다. 이러한 기술은 데이터 처리나 알고리즘 문제 해결에서도 자주 사용되므로 익혀두면 매우 유용합니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.