>  기사  >  백엔드 개발  >  Python에서 두 사전을 병합하는 방법

Python에서 두 사전을 병합하는 방법

藏色散人
藏色散人원래의
2019-06-24 11:02:4932190검색

Python에서 두 사전을 병합하는 방법

Python에서 두 사전을 병합하는 것은 비교적 일반적인 문제입니다. 이 기사에서는 두 사전을 병합하고 비교하는 몇 가지 솔루션을 소개합니다.

이 문제의 경우 더 직관적인 아이디어는 두 개의 사전을 추가하고 결과 사전에 값을 할당하는 것입니다. 코드는 다음과 같습니다.

Python은 두 개의 사전을 병합합니다(방법 1)

dictMerged1 = dict( dict1.items() + dict2.items() )

그러나 이 방법은 코드를 병합합니다. 더 오래 걸리고 더 효율적인 방법은 다음과 같습니다.

두 개의 Python 사전 병합(방법 2)

dictMerged2 = dict( dict1, **dict2 )

이 방법은 dict() 팩토리 메서드(Python 2.2 이상)를 사용합니다. 입력 매개변수가 다른 사전(여기서는 dict1)인 경우 팩토리 메소드가 호출되면 내용이 dict1에서 복사되어 새 사전이 생성됩니다. Python 2.3부터 이 팩토리 메소드를 사용하면 사전 또는 키워드 인수 사전을 호출할 수 있습니다.

그러나 이 호출 메서드의 경우 dict()는 최대 하나의 매개 변수(또는 이름=값인 가변 길이 매개 변수 집합)만 허용하고 다른 사전은 허용하지 않는다는 점에 유의해야 합니다. 따라서 단순히 두 매개변수 dict1과 dict2를 사용하는 직관적인 방법은 다음 오류를 표시합니다.

>>> dictMerged = dict( dict1, dict2 )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: dict expected at most 1 arguments, got 2

이것이 바로 위의 방법 2에서 **dict2가 사용되는 것을 볼 수 있는 이유입니다. C에 익숙한 친구들은 여기서 *가 포인터를 의미하지 않는다는 점에 유의해야 합니다. 이는 Python에서 가변 길이 함수 매개변수를 작성하는 방법입니다(가변 길이 함수 매개변수에 대한 관련 지식은 이 기사를 참조하세요). 여기서 **는 사전 기반의 가변 길이 함수 매개변수를 의미합니다.

방법 2는 아래 방법 3과 같이 코드를 실행합니다. 즉, 먼저 dict1을 dictMerged에 복사한 다음 update() 작업을 수행합니다.

두 개의 Python 사전 병합(방법 3)

dictMerged3 = dict1.copy()
dictMerged3.update( dict2 )

첫 번째 단계 복사 작업에 관한 한 내장 메서드 copy()를 사용하는 이 복사 메서드는 메서드 2의 복사와 동일한 결과를 가지지만 "Core Python 프로그래밍(2판)" 책의 섹션 7.3.2에 따르면 " , 기존 사전에서 새 사전을 생성하는 방법인 dictNew = dict(dictOld)는 내장 방법인 dictNew = dictOld.copy()보다 느리므로 책에서는 copy() 방법을 권장합니다.

그래서 이 방법들 중에서 방법 3이 가장 효율적이고 코드도 읽기 쉽습니다.

관련 추천: "Python Tutorial"

위 내용은 Python에서 두 사전을 병합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.