사전에 요소 추가 및 Python에서 사전 결합

사업

이 섹션에서는 사전 (dict 유형 객체)에 새 요소를 추가하거나 Python에서 기존 요소의 값을 업데이트하는 방법을 설명합니다. 여러 사전을 연결 (결합, 병합) 할 수도 있습니다.

  • 키를 지정하여 사전에 요소를 추가하고 업데이트합니다.
  • 여러 사전의 연결 (병합) : update (), | 연산자, | = 연산자
  • 여러 요소 추가 또는 업데이트 : update (), | = 연산자

키를 지정하여 사전에 요소를 추가하고 업데이트합니다.

다음과 같은 방법으로 사전 요소를 추가 / 업데이트 할 수 있습니다.

사전 객체 [키] = 값

존재하지 않는 키가 지정되면 새 요소가 추가되고 기존 키가 지정되면 기존 값이 업데이트 (덮어 쓰기)됩니다.

d = {'k1': 1, 'k2': 2}

d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}

존재하는 키의 값을 업데이트하지 않으려면 setdefault () 메서드를 사용하십시오.

여러 사전 연결 (병합) : update (), | 연산자, | = 연산자

update()

다른 딕셔너리 객체가 딕셔너리 객체의 메소드 update ()에 대한 인수로 지정되면 모든 요소가 추가됩니다.

키가 기존 키와 겹치는 경우 인수에 지정된 사전 값으로 덮어 씁니다.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

update () 인수에 여러 사전을 지정하는 것은 오류입니다.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2

나중에 설명 하겠지만 update ()는 새로운 요소를 키워드 인자 (key = value)로 추가 할 수 있으므로 **를 사전에 추가하고 각 요소를 키워드 인자로 확장하고 전달하면됩니다.

d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

이전 예제에서와 같이 update ()를 사용하면 원래 사전 객체가 업데이트됩니다.

여러 사전을 병합하여 새 사전을 생성하려면 {** d1, ** d2} (Python 3.5에서) 또는 dict (** d1, ** d2)를 사용하세요.

Python 3.9 이상에서는 다음을 사용하여 새 사전을 만들 수도 있습니다. 연산자는 다음에 설명합니다.

| 연산자, | = 연산자 (Python 3.9 이상)

Python 3.9부터 |를 사용하여 두 개의 사전을 병합 할 수 있습니다. 운영자. 두 사전에 동일한 키가 있으면 오른쪽 값이 우선합니다.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

print(d1 | d2)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

print(d2 | d1)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}

| 일련의 연산자를 사용하여 여러 사전을 결합 할 수도 있습니다.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

print(d1 | d2 | d3)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

+ update ()와 마찬가지로 왼쪽의 객체가 업데이트됩니다.

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

여러 요소 추가 또는 업데이트 : update (), | = 연산자

update()

update () 메서드에 키워드 인수 key = value가 지정되면 키 키와 값 값이 추가됩니다. 키가 기존 키와 겹치는 경우 인수에 지정된 값으로 덮어 씁니다.

d = {'k1': 1, 'k2': 2}

d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

update () 메서드에 대한 인수로 (key, value) 목록을 지정할 수도 있습니다. 키가 기존 키와 겹치는 경우 인수로 지정된 값으로 덮어 씁니다.

d = {'k1': 1, 'k2': 2}

d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

zip () 함수와 함께 키 목록과 값 목록에서 요소를 추가 할 수 있습니다.

d = {'k1': 1, 'k2': 2}

keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]

d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

| = 연산자 (Python 3.9 이상)

| = 연산자를 사용하면 오른쪽에 (키, 값) 목록을 지정할 수 있습니다.

d = {'k1': 1, 'k2': 2}

d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

목록을 | 연산자는 오류가 발생합니다. 사전에서 사전으로의 작업 만 지원됩니다.

# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'
Copied title and URL