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

Python – 리스트에서 딕셔너리 생성하기: setdefault() 메서드 완벽 가이드

개요

Python 프로그래밍에서 리스트(list) 데이터를 활용해 딕셔너리(dictionary)를 만들어야 하는 경우가 자주 있습니다. 이럴 때 dict() 메서드로 빈 딕셔너리를 생성하고, 간단한 반복문과 setdefault() 메서드를 조합하면 원하는 구조의 딕셔너리를 손쉽게 구성할 수 있습니다.

예제 코드

다음은 리스트에서 딕셔너리를 생성하는 전체 과정을 보여주는 예제입니다.

my_dict = dict()
print("An empty dictionary has been created")
my_value_list = ['15', '14', '13', '12', '16']

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

my_value_list.sort()
print("The list after sorting is :")
print(my_value_list)

for value in my_value_list:
   for element in range(int(value), int(value) + 2):
      my_dict.setdefault(element, []).append(value)

print("The resultant dictionary is : ")
print(my_dict)

실행 결과

An empty dictionary has been created
The list is :
['15', '14', '13', '12', '16']
The list after sorting is :
['12', '13', '14', '15', '16']
The resultant dictionary is :
{12: ['12'], 13: ['12', '13'], 14: ['13', '14'], 15: ['14', '15'], 16: ['15', '16'], 17: ['16']}

코드 설명

  • 빈 딕셔너리 생성: dict() 메서드를 호출하여 아무 요소도 없는 빈 딕셔너리 my_dict를 먼저 만들고, 생성 사실을 콘솔에 출력합니다.

  • 리스트 정의 및 출력: 문자열 형태의 숫자 값('15', '14' 등)을 담고 있는 리스트를 정의한 뒤, 원본 상태 그대로 콘솔에 표시합니다.

  • 리스트 정렬: sort() 메서드를 사용해 리스트를 오름차순으로 정렬한 후, 정렬된 결과를 다시 한번 출력합니다.

  • 반복 처리 및 값 추가: 리스트의 각 값을 순회하면서 내부 반복문으로 해당 값부터 1만큼 큰 값까지의 범위(range)를 만듭니다. 그런 다음 setdefault() 메서드로 딕셔너리에 키를 등록하고, 해당 키의 리스트에 값을 append()로 추가합니다.

  • 결과 저장: 위 과정을 거쳐 만들어진 최종 딕셔너리가 결과로 저장됩니다.

  • 결과 출력: 완성된 딕셔너리가 콘솔 화면에 출력됩니다.

setdefault() 메서드란?

setdefault(key, default)는 딕셔너리에 지정한 키가 이미 존재하면 그 키의 값을 그대로 반환하고, 키가 존재하지 않으면 두 번째 인자로 전달한 기본값을 새로 저장한 뒤 반환하는 메서드입니다. 이 예제에서는 기본값으로 빈 리스트([])를 사용했기 때문에, 키 존재 여부를 매번 검사하지 않고도 안전하게 값을 누적할 수 있습니다. 리스트에서 딕셔너리를 만들 때 특히 유용하게 활용되는 패턴이니 꼭 기억해 두시기 바랍니다.