Python 요리책(데이터 구조 및 알고리즘)은 여러 매핑을 단일 매핑으로 결합합니다.

不言
풀어 주다: 2018-04-19 13:45:38
원래의
1513명이 탐색했습니다.

이 글에서는 주로 여러 개의 매핑을 하나의 매핑으로 병합하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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