이 글에서는 주로 여러 개의 매핑을 하나의 매핑으로 병합하는 Python 요리책(데이터 구조 및 알고리즘)을 소개합니다. Python 사전 매핑 병합 작업과 관련된 구현 기술을 예제 형식으로 분석합니다. 이 기사의 예제
여러 매핑을 단일 매핑으로 병합하는 Python의 방법을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하세요.
질문: 여러 사전이나 맵을 단일 매핑 구조로 논리적으로 결합하여 값 조회 또는 키 존재 여부 확인과 같은 특정 작업을 수행합니다.
해결책 : 컬렉션
모듈의 ChainMap
클래스를 활용하세요. collections
模块中的ChainMap
类
ChainMap
可接受多个映射然后在逻辑上使它们表现为一个单独的映射结构。这些映射在字面上并不会合并在一起。相反,ChainMap
ChainMap
은 여러 매핑을 허용한 다음 논리적으로 별도의 매핑 구조로 동작할 수 있습니다. 이러한 매핑은 문자 그대로 병합되지 않습니다. 이와 대조적으로 ChainMap
은 기본 매핑 관계를 기록하는 목록을 유지한 다음 이 목록을 스캔하기 위해 일반적인 사전 작업을 재정의합니다.
# example.py # # Example of combining dicts into a chainmap a = {'x': 1, 'z': 3 } b = {'y': 2, 'z': 4 } # (a) Simple example of combining from collections import ChainMap c = ChainMap(a,b) #如果有重复的键,那么会采用第一个映射中所对应的值。 print(c['x']) # Outputs 1 (from a) print(c['y']) # Outputs 2 (from b) print(c['z']) # Outputs 3 (from a) # Output some common values print('len(c):', len(c)) print('c.keys():', list(c.keys())) print('c.values():', list(c.values())) # Modify some values c['z'] = 10 c['w'] = 40 print("a:", a) del c['x'] print("a:", a) # Example of stacking mappings (like scopes) values = ChainMap() values['x'] = 1 # Add a new mapping values = values.new_child() values['x'] = 2 # Add a new mapping values = values.new_child() values['x'] = 3 print(values) print(values['x']) # Discard last mapping values = values.parents print(values) print(values['x']) # Discard last mapping values = values.parents print(values) print(values['x'])
>>> ================================ RESTART ================================ >>> 1 2 3 len(c): 3 c.keys(): ['y', 'x', 'z'] c.values(): [2, 1, 3] a: {'x': 1, 'z': 10, 'w': 40} a: {'z': 10, 'w': 40} ChainMap({'x': 3}, {'x': 2}, {'x': 1}) 3 ChainMap({'x': 2}, {'x': 1}) 2 ChainMap({'x': 1}) 1 >>>ChainMap은 원본 사전에서 작동하므로 병합된 사전에 반영할 수 없는 원본 사전 수정과 같은 불쾌한 동작을 피할 수 있습니다.
>>> a={'x':1,'z':3} >>> b={'y':2,'z':4} >>> merged=ChainMap(a,b) >>> merged ChainMap({'x': 1, 'z': 3}, {'y': 2, 'z': 4}) >>> merged['x'] 1 >>> a['x']=55 >>> merged['x'] 55 >>> merged ChainMap({'x': 55, 'z': 3}, {'y': 2, 'z': 4}) >>>(코드는 "Python Cookbook"에서 가져옴)관련 권장 사항:
Python 요리 책(문자열 및 텍스트) 여러 구분 기호에 대한 문자열 분할 작업
🎜
위 내용은 Python 요리책(데이터 구조 및 알고리즘)은 여러 매핑을 단일 매핑으로 결합합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!