Python에서 여러 값을 사용하는 사전
- 사용자 정의 함수를 사용하여 사전의 키에 여러 값 추가
-
defaultdict
모듈을 사용하여 사전의 키에 여러 값 추가 -
setdefault()
메서드를 사용하여 사전의 특정 키에 여러 값 추가
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
, key
및 list_of_values
를 함수 내 매개변수로 사용하여 dict1
함수를 만들었습니다. extend()
함수는 사전의 키 값으로 목록을 추가합니다.
defaultdict
모듈을 사용하여 사전의 키에 여러 값 추가
‘defaultdict’는 컬렉션 모듈의 일부입니다. 또한 사전과 같은 객체를 반환하는 dict
클래스의 하위 클래스입니다. 존재하지 않는 키의 경우 기본값을 제공합니다.
defaultdict
와 dict
는 defaultdict
가 keyerror
를 발생시키지 않는다는 점을 제외하고 동일한 기능을 가지고 있습니다.
튜플 모음을 사전으로 변환하는 데 사용할 수 있습니다. 기본값을 목록으로 지정합니다. 따라서 동일한 키가 발생할 때마다 값을 목록으로 추가합니다.
예를 들어,
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]}