문제:
어떻게 효율적으로 데이터에 액세스하고 조작할 수 있습니까? 목록을 사용하여 깊이 중첩된 사전 구조 키?
해결책:
기본 Python 함수 functools.reduce를 사용하면 단일 작업으로 사전을 효율적으로 탐색할 수 있습니다. pass.
구현:
from functools import reduce import operator def get_by_path(root, items): """Access a nested object in root by item sequence.""" return reduce(operator.getitem, items, root)
사용법:
지정된 경로에서 값을 검색하려면 다음을 사용하세요. get_by_path:
dataDict = { "a": { "r": 1, "s": 2, "t": 3 }, "b": { "u": 1, "v": { "x": 1, "y": 2, "z": 3 }, "w": 3 } } maplist = ["a", "r"] value = get_by_path(dataDict, maplist) # 1
값 설정:
특정 경로에 값을 설정하려면 get_by_path를 재사용하여 상위 사전을 찾고 값을 원하는 키:
def set_by_path(root, items, value): """Set a value in a nested object in root by item sequence.""" get_by_path(root, items[:-1])[items[-1]] = value
사용:
maplist = ["b", "v", "w"] set_by_path(dataDict, maplist, 4)
추가 기능:
완전성을 위해 다음을 정의할 수도 있습니다. 중첩된 키-값 쌍을 삭제하는 함수 사전:
def del_by_path(root, items): """Delete a key-value in a nested object in root by item sequence.""" del get_by_path(root, items[:-1])[items[-1]]
위 내용은 키 목록을 사용하여 중첩된 Python 사전의 데이터에 효율적으로 액세스하고 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!