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

파이썬(Python) 리스트 딕셔너리 만드는 방법 완벽 정리

파이썬의 딕셔너리(dictionary)는 순서가 없고, 변경 가능하며(mutable), 키를 통해 접근할 수 있는 자료구조입니다. 딕셔너리는 중괄호 {}로 작성하며, 각 항목은 키(key)값(value)의 쌍으로 이루어집니다. 딕셔너리의 항목에 접근하려면 대괄호 안에 키 이름을 지정하면 됩니다.

이 글에서는 리스트(list)를 값으로 갖는 딕셔너리를 만드는 다양한 방법을 예제 코드와 함께 살펴봅니다.

1. 빈 딕셔너리에 리스트 값 할당하기

가장 기본적인 방법은 빈 딕셔너리를 만든 뒤, 원하는 키에 리스트를 직접 할당하는 것입니다.

# 빈 딕셔너리 생성
myDict = {}

# 리스트를 값으로 추가
myDict["key1"] = [1, 2]
myDict["key2"] = ["Vishesh", "For", "Python"]

print(myDict)

실행 결과:

{'key2': ['Vishesh', 'For', 'Python'], 'key1': [1, 2]}

2. append()로 리스트 안에 리스트 추가하기

append() 메서드를 사용하면 기존 키의 리스트 값에 또 다른 리스트를 하나의 요소로 추가할 수 있습니다.

# 빈 딕셔너리 생성
myDict = {}

# 리스트를 값으로 추가
myDict["key1"] = [1, 2]

# 새로운 리스트 생성
lst = ['vishesh', 'For', 'python']

# myDict의 key1 리스트에 lst를 하위 리스트로 추가
myDict["key1"].append(lst)

print(myDict)

실행 결과:

{'key1': [1, 2, ['vishesh', 'For', 'python']]}

3. setdefault() 메서드 활용하기

setdefault() 메서드는 해당 키가 없을 때 기본값(여기서는 빈 리스트 [])을 설정해 주므로, 반복문 안에서 동적으로 딕셔너리를 구성할 때 매우 유용합니다.

# 빈 딕셔너리 생성
myDict = dict()

# 문자열 리스트 생성
valList = ['1', '2', '3']

# 리스트 요소를 반복하며 값 분배
for val in valList:
    for ele in range(int(val), int(val) + 2):
        myDict.setdefault(ele, []).append(val)

print(myDict)

실행 결과:

{1: ['1'], 2: ['1', '2'], 3: ['2', '3'], 4: ['3']}

4. 리스트 컴프리헨션으로 만들기

리스트 컴프리헨션과 dict() 생성자를 조합하면 코드 한 줄로 리스트 딕셔너리를 생성할 수 있습니다.

# 리스트 컴프리헨션으로 리스트 딕셔너리 생성
d = dict((val, range(int(val), int(val) + 2))
         for val in ['1', '2', '3'])

print(d)

실행 결과:

{'1': [1, 2], '3': [3, 4], '2': [2, 3]}

마무리

지금까지 파이썬에서 리스트를 값으로 갖는 딕셔너리를 만드는 네 가지 방법을 알아보았습니다. 단순히 값을 할당할 때는 첫 번째 방법이, 반복문으로 데이터를 모을 때는 setdefault()가, 간결한 코드를 원한다면 리스트 컴프리헨션이 적합합니다. 상황에 맞는 방법을 선택해 활용해 보시기 바랍니다.