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

Python – 딕셔너리를 활용한 매트릭스 매핑 방법


행렬(매트릭스)의 각 요소를 딕셔너리에 매핑해야 할 때는 간단한 반복문을 사용하면 손쉽게 처리할 수 있습니다. 이 글에서는 중첩 리스트의 모든 요소를 딕셔너리의 키로 조회하여 새로운 값으로 변환하는 방법을 살펴봅니다.

예제 코드

아래는 리스트 안의 리스트(중첩 리스트)를 딕셔너리로 매핑하는 전체 예제입니다.

my_list = [[2, 4, 3], [4, 1, 3], [2, 1, 3, 4]]

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

map_dict = {2 : "Python", 1: "fun", 3 : "to", 4 : "learn"}

my_result = []
for index in my_list:
    temp = []
    for element in index:
        temp.append(map_dict[element])
    my_result.append(temp)

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

실행 결과

The list :
[[2, 4, 3], [4, 1, 3], [2, 1, 3, 4]]
The result is :
[['Python', 'learn', 'to'], ['learn', 'fun', 'to'], ['Python', 'fun', 'to', 'learn']]

코드 설명

  • 중첩 리스트 정의 및 출력: 리스트 안에 여러 개의 리스트가 포함된 구조를 정의한 뒤 콘솔에 출력합니다.

  • 매핑용 딕셔너리 정의: 숫자 키(2, 1, 3, 4)와 문자열 값("Python", "fun", "to", "learn")으로 이루어진 딕셔너리를 생성합니다.

  • 결과 저장용 빈 리스트 생성: 최종 결과를 담을 빈 리스트 my_result를 만듭니다.

  • 반복문을 통한 매핑: 바깥 반복문이 각 하위 리스트를 순회하고, 안쪽 반복문이 각 요소를 딕셔너리의 키로 조회하여 해당 값을 임시 리스트 temp에 추가합니다.

  • 결과 누적: 하나의 하위 리스트에 대한 변환이 끝나면 완성된 임시 리스트를 결과 리스트에 추가합니다.

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

더 간결한 방법: 리스트 컴프리헨션

위 코드는 리스트 컴프리헨션(list comprehension)을 사용하면 더욱 간결하게 작성할 수 있습니다.

my_result = [[map_dict[element] for element in row] for row in my_list]

이 한 줄은 앞서 본 중첩 반복문과 동일한 동작을 수행하며, 코드 가독성과 유지보수성 측면에서 유리합니다. 다만, 딕셔너리에 존재하지 않는 키가 포함될 경우 KeyError가 발생할 수 있으므로, 필요하다면 dict.get() 메서드를 사용해 기본값을 지정하는 것이 안전합니다.