Python에서 리스트를 인덱스와 값으로 구성된 딕셔너리 형태로 변환해야 하는 경우가 있습니다. 이럴 때는 내장 함수인 enumerate와 간단한 반복문을 활용하면 손쉽게 처리할 수 있습니다.
예제 코드
아래 예제를 통해 변환 과정을 살펴보겠습니다.
my_list = [32, 0, 11, 99, 223, 51, 67, 28, 12, 94, 89]
print("The list is :")
print(my_list)
my_list.sort(reverse=True)
print("The sorted list is ")
print(my_list)
index, value = "index", "values"
my_result = {index : [], value : []}
for id, vl in enumerate(my_list):
my_result[index].append(id)
my_result[value].append(vl)
print("The result is :")
print(my_result)실행 결과
The list is :
[32, 0, 11, 99, 223, 51, 67, 28, 12, 94, 89]
The sorted list is
[223, 99, 94, 89, 67, 51, 32, 28, 12, 11, 0]
The result is :
{'index': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'values': [223, 99, 94, 89, 67, 51, 32, 28, 12, 11, 0]}코드 설명
정수로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
sort(reverse=True)를 사용해 리스트를 내림차순으로 정렬한 뒤 결과를 출력합니다.딕셔너리의 키로 사용할
index와values문자열을 초기화합니다.enumerate함수로 리스트를 순회하면서 각 요소의 인덱스와 값을 미리 만들어 둔 빈 리스트에 하나씩 추가(append)합니다.최종적으로 인덱스 리스트와 값 리스트를 키-값 구조로 담은 딕셔너리가 완성되며, 이 결과가 콘솔에 출력됩니다.
참고 사항
enumerate는 반복 가능한 객체를 순회할 때 인덱스와 요소를 동시에 반환하는 Python의 유용한 내장 함수입니다. 위 방법 외에도 딕셔너리 컴프리헨션(dictionary comprehension)을 사용하면 더 간결하게 표현할 수 있습니다.