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

파이썬으로 리스트 요소별 인덱스 딕셔너리 만들기

리스트에 담긴 각 요소가 어떤 위치(인덱스)에 있는지 한눈에 파악하고 싶을 때가 있습니다. 이런 경우 리스트 컴프리헨션(list comprehension)'set' 연산자를 함께 사용하면 요소별 인덱스를 정리한 딕셔너리를 아주 간단하게 만들 수 있습니다.

예제 코드

아래는 리스트 요소의 인덱스를 딕셔너리 형태로 정리하는 방법을 보여주는 예제입니다.

my_list = [81, 36, 42, 57, 68, 12, 26, 26, 38]

print("The list is :")
print(my_list)
my_result = {key: [index for index, value in enumerate(my_list) if value == key]
   for key in set(my_list)}

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

실행 결과

The list is :
[81, 36, 42, 57, 68, 12, 26, 26, 38]
The result is :
{36: [1], 68: [4], 38: [8], 42: [2], 12: [5], 81: [0], 57: [3], 26: [6, 7]}

코드 설명

  • 먼저 리스트를 정의하고, 콘솔에 출력하여 원본 데이터를 확인합니다.

  • set(my_list)를 통해 리스트에서 중복을 제거한 고유한 값들만 추출합니다.

  • 딕셔너리 컴프리헨션을 사용하여 각 고유 값을 키(key)로 지정합니다.

  • 키에 대응하는 값(value)은 내부의 리스트 컴프리헨션과 enumerate() 함수를 활용해, 해당 값과 일치하는 모든 인덱스를 찾아 리스트로 저장합니다.

  • 완성된 딕셔너리를 변수에 할당한 후, 콘솔에 출력합니다.

핵심 포인트

위 실행 결과에서 중복된 값 26이 인덱스 67, 두 개의 위치 정보를 모두 가지고 있는 점에 주목하세요. 이 방식은 값이 여러 번 등장하더라도 해당하는 모든 인덱스를 누락 없이 수집해 주기 때문에, 데이터 분석이나 검색 로직을 구현할 때 매우 유용하게 활용됩니다.