dictionary - python - 파이썬 딕셔너리 리턴 - 파이썬의 단일 표현식에서 두 개의 사전을 병합하는 방법은 무엇입니까 (사전의 합집합 사용)?

Python 3.9 새로운 기능 / python / merge

두 개의 Python 사전이 있고이 두 사전을 병합하여 반환하는 단일 표현식을 작성하려고합니다 (즉, 합집합 사용). update() 메소드는 그 결과를 반환하는 대신 현재 위치에서 사전을 수정하면 내가 필요한 것입니다.

>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = x.update(y)
>>> print(z)
None
>>> x
{'a': 1, 'b': 10, 'c': 11}

Charlie Parker



Answer #1

시간 측면에서 :

>>> timeit.Timer("dict(x, **y)", "x = dict(zip(range(1000), range(1000)))\ny=dict(zip(range(1000,2000), range(1000,2000)))").timeit(100000)
15.52571702003479
>>> timeit.Timer("temp = x.copy()\ntemp.update(y)", "x = dict(zip(range(1000), range(1000)))\ny=dict(zip(range(1000,2000), range(1000,2000)))").timeit(100000)
15.694622993469238
>>> timeit.Timer("dict(x.items() + y.items())", "x = dict(zip(range(1000), range(1000)))\ny=dict(zip(range(1000,2000), range(1000,2000)))").timeit(100000)
41.484580039978027