Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 리스트를 리스트의 리스트로 변환하는 방법 – 단계 값과 split() 활용하기

Python 프로그래밍을 하다 보면 하나의 리스트를 각 요소가 개별 리스트로 구성된 ‘리스트의 리스트(list of lists)’ 구조로 변환해야 하는 경우가 종종 있습니다. 이때 단계 값(step value)을 기준으로 데이터를 나누어 저장하면 이후 데이터 가공이나 그룹화 작업이 훨씬 수월해집니다.

이 글에서는 간단한 반복문과 문자열의 split() 메서드, 그리고 append() 메서드를 활용하여 리스트를 리스트의 리스트로 변환하는 방법을 알아보겠습니다.

예제 코드

아래는 실제 동작을 확인할 수 있는 전체 예제입니다.

def convert_my_list(my_list):
   my_result = []
   for el in my_list:
      sub = el.split(', ')
      my_result.append(sub)

   return(my_result)

my_list = ['peter', 'king', 'charlie']
print("The list is :")
print(my_list)

print("The resultant list is :")
print(convert_my_list(my_list))

실행 결과

The list is :
['peter', 'king', 'charlie']
The resultant list is :
[['peter'], ['king'], ['charlie']]

코드 설명

  • 함수 정의: convert_my_list라는 이름의 함수를 정의합니다.

  • 매개변수: 이 함수는 리스트 하나를 매개변수로 받습니다.

  • 빈 리스트 생성: 함수 내부에는 결과를 담을 빈 리스트 my_result가 선언됩니다.

  • 반복 처리: 입력받은 리스트를 순회하면서 각 요소를 쉼표(, )를 기준으로 split()

  • 결과 추가: 분할된 결과(부분 리스트)를 빈 리스트에 append() 메서드로 추가합니다.

  • 결과 반환: 모든 요소의 처리가 끝나면 완성된 리스트의 리스트를 반환합니다.

  • 함수 호출: 함수 외부에서 샘플 리스트를 정의하고 콘솔에 출력한 뒤, 해당 리스트를 인자로 넘겨 함수를 호출합니다.

  • 출력 확인: 최종 변환 결과가 콘솔에 출력됩니다.

참고: 리스트 컴프리헨션으로 더 간결하게

위 코드는 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄로도 표현할 수 있습니다.

my_list = ['peter', 'king', 'charlie']
result = [el.split(', ') for el in my_list]
print(result)  # [['peter'], ['king'], ['charlie']]

이처럼 반복문 대신 컴프리헨션을 활용하면 코드가 더욱 간결하고 Python스럽게(Pythonic) 다듬어집니다. 상황에 맞게 두 방식 중 가독성이 좋은 쪽을 선택해 사용하시면 됩니다.