Python에서 여러 값을 사용하는 사전

Hemank Mehtani 2023년1월30일
  1. 사용자 정의 함수를 사용하여 사전의 키에 여러 값 추가
  2. defaultdict 모듈을 사용하여 사전의 키에 여러 값 추가
  3. setdefault() 메서드를 사용하여 사전의 특정 키에 여러 값 추가
Python에서 여러 값을 사용하는 사전

Python의 사전은 키-값 쌍의 형태로 요소 그룹을 구성합니다. 일반적으로 사전의 키에 대한 단일 값이 있습니다.

그러나 키에 대한 값을 목록과 같은 컬렉션으로 가질 수 있습니다. 이런 식으로 특정 키에 대해 사전에 여러 요소를 가질 수 있습니다.

예를 들어,

d = {"a": [1, 2], "b": [2, 3], "c": [4, 5]}
print(d)

출력:

{'a': [1, 2], 'b': [2, 3], 'c': [4, 5]}

이 자습서에서는 Python의 사전에 여러 값을 목록으로 추가하는 다양한 방법에 대해 설명합니다.

사용자 정의 함수를 사용하여 사전의 키에 여러 값 추가

값이 목록인 사전에 키-값 쌍을 추가하는 함수를 만들 수 있습니다.

예를 들어,

def dict1(sample_dict, key, list_of_values):
    if key not in sample_dict:
        sample_dict[key] = list()
    sample_dict[key].extend(list_of_values)
    return sample_dict


word_freq = {
    "example": [1, 3, 4, 8, 10],
    "for": [3, 10, 15, 7, 9],
    "this": [5, 3, 7, 8, 1],
    "tutorial": [2, 3, 5, 6, 11],
    "python": [10, 3, 9, 8, 12],
}
word_freq = dict1(word_freq, "tutorial", [20, 21, 22])
print(word_freq)

출력:

{'example': [1, 3, 4, 8, 10], 'for': [3, 10, 15, 7, 9], 'this': [5, 3, 7, 8, 1], 'tutorial': [2, 3, 5, 6, 11, 20, 21, 22], 'python': [10, 3, 9, 8, 12]}

위의 코드에서 sample_dict, keylist_of_values를 함수 내 매개변수로 사용하여 dict1 함수를 만들었습니다. extend() 함수는 사전의 키 값으로 목록을 추가합니다.

defaultdict 모듈을 사용하여 사전의 키에 여러 값 추가

‘defaultdict’는 컬렉션 모듈의 일부입니다. 또한 사전과 같은 객체를 반환하는 dict 클래스의 하위 클래스입니다. 존재하지 않는 키의 경우 기본값을 제공합니다.

defaultdictdictdefaultdictkeyerror를 발생시키지 않는다는 점을 제외하고 동일한 기능을 가지고 있습니다.

튜플 모음을 사전으로 변환하는 데 사용할 수 있습니다. 기본값을 목록으로 지정합니다. 따라서 동일한 키가 발생할 때마다 값을 목록으로 추가합니다.

예를 들어,

from collections import defaultdict

s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
d = defaultdict(list)
for k, v in s:
    d[k].append(v)
sorted(d.items())
print(d)

출력:

defaultdict(<class 'list'>,
            {'rome': [1],
             'paris': [2, 4], 
             'newyork': [3],
             'delhi': [1]
            }) 

setdefault() 메서드를 사용하여 사전의 특정 키에 여러 값 추가

setdefault() 메소드는 키에 기본값을 설정하는 데 사용됩니다. 키가 있으면 일부 값을 반환합니다. 그렇지 않으면 기본값이 있는 키를 삽입합니다. 키의 기본값은 없음입니다.

이 방법을 사용하여 키에 대한 값으로 목록을 추가합니다.

예를 들어,

s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
data_dict = {}
for x in s:
    data_dict.setdefault(x[0], []).append(x[1])
print(data_dict)

출력:

{'rome': [1], 'paris': [2, 4], 'newyork': [3], 'delhi': [1]}

관련 문장 - Python Dictionary