Python에서 중첩 사전 업데이트

PHPz
풀어 주다: 2023-09-09 18:21:04
앞으로
849명이 탐색했습니다.

Python에서 중첩 사전 업데이트

Python에서 사전은 키-값 쌍을 효율적으로 저장하고 검색할 수 있는 범용 데이터 구조입니다. 특히 중첩된 사전은 복잡한 데이터를 구성하고 표현하는 편리한 방법을 제공합니다. 그러나 중첩된 사전의 값을 업데이트하는 것은 때로는 다소 어려울 수 있습니다.

중첩된 사전 요소에 액세스

중첩 사전의 값을 업데이트하려면 먼저 사전 계층 구조의 특정 키에 액세스해야 합니다. Python을 사용하면 키를 연속적으로 사용하여 중첩된 요소에 액세스할 수 있습니다. 예를 들어 -

으아악

위 코드 조각에서는 키를 연속적으로 연결하여 중첩된 요소 "inner_key"에 액세스하고 해당 값을 "new_value"로 업데이트합니다.

단일 수준 중첩 사전 업데이트

때로는 다양한 수준의 키에 고정된 구조가 없는 중첩 사전이 있을 수 있습니다. 이 경우에는 좀 더 일반적인 접근 방식이 필요합니다. Python은 하나의 사전을 다른 사전에 병합하여 해당 값을 업데이트할 수 있는 update() 메서드를 제공합니다. 다음은 예입니다

으아악

위 코드 조각에서는 업데이트하려는 키-값 쌍이 포함된 별도의 사전 update_dict를 만들었습니다. update() 메소드를 사용하여 update_dict를 지정된 키 수준의 중첩 사전에 병합하여 해당 값을 효과적으로 업데이트합니다.

다단계 중첩 사전 업데이트

중첩된 사전의 여러 수준에서 값을 업데이트해야 하는 경우 재귀적 접근 방식을 사용할 수 있습니다. 이 방법에는 필요한 키를 찾을 때까지 사전을 반복적으로 탐색하는 작업이 포함됩니다. 다음은 예입니다

으아악

위의 코드 조각에서는 중첩된 사전, 키 목록 및 새 값을 인수로 사용하는 재귀 함수 update_nested_dict를 정의합니다. 이 함수는 목록에 키가 하나만 남아 있는지 확인하고, 그렇다면 중첩된 사전의 값을 업데이트합니다. 그렇지 않으면 필요한 키를 찾을 때까지 중첩된 사전을 더 깊게 탐색합니다.

분실된 키를 처리하고 새 키를 만드세요

중첩 사전을 업데이트할 때 지정된 키가 존재하지 않을 수 있는 경우를 고려하는 것이 중요합니다. Python은 이러한 상황을 처리하고 필요할 때 새 키를 생성하는 여러 기술을 제공합니다.

Setdefault() 메소드 사용

setdefault() 메서드는 누락된 키를 처리할 때 중첩된 사전의 값을 업데이트하는 편리한 방법입니다. 키가 존재하지 않는 경우 기본값을 지정할 수 있습니다. 키가 발견되면 기존 값이 반환됩니다. 그렇지 않으면 기본값이 사전에 삽입됩니다. 다음은 예입니다

으아악

위 코드 조각에서는 setdefault() 메서드를 사용하여 중첩된 사전의 "outer_key" 내의 "inner_key" 값을 업데이트합니다. "inner_key"가 존재하지 않으면 "new_value" 값으로 생성하십시오.

Defaultdict 클래스 사용

컬렉션 모듈의 defaultdict 클래스는 중첩된 사전에서 누락된 키를 처리하는 강력한 방법을 제공합니다. 존재하지 않는 키에 액세스하면 자동으로 기본값이 할당됩니다. 다음은 예입니다

으아악

위 코드 조각에서는 defaultdict를 생성하고 dict 유형을 기본 팩토리로 사용했습니다. 이렇게 하면 존재하지 않는 키가 자동으로 새 중첩 사전을 생성하게 됩니다. 그런 다음 "outer_key" 내부의 "inner_key"를 "new_value" 값으로 업데이트합니다.

깊게 중첩된 사전의 값 업데이트

재귀적 접근 방식은 여러 중첩 수준이 포함된 중첩 사전이 있고 가장 안쪽 수준의 값을 업데이트해야 하는 경우 더 유용합니다. 그에 따라 순회 논리를 수정하여 깊게 중첩된 사전을 처리하도록 재귀 함수를 확장할 수 있습니다.

으아악

위 코드 조각에서는 깊게 중첩된 사전을 처리하도록 이전 재귀 함수를 향상했습니다. 어떤 수준에서 키가 누락되면 새로운 빈 사전이 생성되고 함수는 가장 안쪽 키에 도달할 때까지 계속 순회합니다.

불변 중첩 사전

Python의 사전은 변경 가능한 객체라는 점에 유의해야 합니다. 따라서 중첩된 사전을 업데이트하면 변경 사항이 사전에 대한 모든 참조에 반영됩니다. 중첩된 사전의 원래 상태를 유지해야 하는 경우 업데이트하기 전에 전체 복사본을 만들 수 있습니다.

으아악

으아악

출력

다음은섹션

에 언급된 코드 조각의 출력입니다. 으아악

위 코드 조각에서 copy.deepcopy() 함수는 모든 중첩 수준을 포함하여 중첩 사전의 전체 복사본을 만듭니다. 이렇게 하면 원본 사전에 영향을 주지 않고 복사된 사전을 업데이트할 수 있습니다.

사전 이해를 사용하여 값 업데이트

중첩된 사전 내의 간단한 업데이트의 경우 사전 이해를 사용할 수 있습니다. 이 접근 방식은 업데이트할 키 세트가 알려진 경우에 적합합니다.

으아악

출력

이것은 위 코드 조각

의 출력입니다.
Original nested_dict: {'outer_key': {'inner_key': 'old_value'}} Updated_dict: {'outer_key': {'inner_key': 'new_value'}}
로그인 후 복사

在代码片段中,我们从包含嵌套结构的nested_dict字典开始。我们使用copy.deepcopy()创建nested_dict的深层副本并将其分配给updated_dict。然后,我们将updated_dict中'outer_key'内的'inner_key'的值更新为'new_value'。

最后,我们打印原始的nested_dict和更新后的updated_dict。从输出中可以看到,原始的nested_dict保持不变,而updated_dict反映了更新后的值。

结论

在 Python 中更新嵌套字典可能涉及访问特定键、合并字典或使用递归技术。通过了解这些不同的方法,您可以根据您的特定要求有效地更新嵌套字典中的值。在选择最合适的方法时,请记住考虑嵌套字典的结构和复杂性。

Python 的灵活性和内置方法(例如 update()、setdefault() 和 defaultdict 类)提供了强大的工具来处理各种情况,包括丢失键和创建新键。

위 내용은 Python에서 중첩 사전 업데이트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!