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

Python으로 행렬을 딕셔너리 값 목록으로 변환하는 프로그램

행렬(Matrix) 형태의 중첩 리스트를 딕셔너리 값 목록으로 변환해야 할 때는 딕셔너리 컴프리헨션(Dictionary Comprehension)을 활용하면 매우 간단하게 처리할 수 있습니다.

예제 코드

아래는 이를 구현한 예제입니다.

my_list = [[71, 26, 35], [65, 56, 37], [89, 96, 99]]

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

my_result = {my_index + 1 : my_list[my_index] for my_index in range(len(my_list))}

print("The result is:")
print(my_result)

실행 결과

The list is :
[[71, 26, 35], [65, 56, 37], [89, 96, 99]]
The result is:
{1: [71, 26, 35], 2: [65, 56, 37], 3: [89, 96, 99]}

동작 원리

  • 먼저 리스트 안에 여러 개의 리스트가 포함된 중첩 리스트(nested list)를 정의하고, 콘솔에 출력하여 확인합니다.

  • 딕셔너리 컴프리헨션을 사용해 리스트의 길이만큼 반복하면서, 인덱싱과 슬라이싱을 통해 각 행(row)에 접근합니다.

  • 각 반복에서 my_index + 1을 키(key)로, 해당 인덱스의 리스트를 값(value)으로 지정하여 새로운 딕셔너리를 생성합니다.

  • 결과적으로 생성된 딕셔너리를 변수에 할당한 뒤, 콘솔에 출력합니다.

추가 팁

만약 키를 0이 아닌 1부터 시작하고 싶다면 위 예제처럼 my_index + 1을 사용하면 됩니다. 반대로 0부터 시작하는 키가 필요하다면 enumerate() 함수를 활용할 수도 있습니다.

my_result = dict(enumerate(my_list))
# 결과: {0: [71, 26, 35], 1: [65, 56, 37], 2: [89, 96, 99]}

이처럼 파이썬은 짧은 코드 한 줄로도 행렬 데이터를 딕셔너리 구조로 손쉽게 변환할 수 있어 데이터 전처리 작업에 유용하게 활용됩니다.