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 중국어 웹사이트의 기타 관련 기사를 참조하세요!