키 목록을 사용하여 중첩된 사전 항목에 액세스
중첩된 사전 구조에 액세스하는 것은 Python 프로그래밍에서 일반적인 작업일 수 있습니다. 여기서는 키 목록을 사용하여 복잡한 사전 내에서 데이터를 검색하고 수정하기 위해 제공된 코드보다 더 효율적인 접근 방식을 탐색합니다.
향상된 순회를 위해 감소() 사용
reduce() 함수는 단일 작업을 적용하여 일련의 값을 변환하는 강력한 도구입니다. 이 경우 이를 사용하여 사전 구조를 순회하여 키 목록을 단일 값으로 줄일 수 있습니다. Operator.getitem 메소드는 각 반복에서 다음 사전 수준을 검색하는 작업으로 사용됩니다.
from functools import reduce # forward compatibility for Python 3 import operator def get_from_dict(data_dict, map_list): return reduce(operator.getitem, map_list, data_dict)
reduce() 및 Operator.setitem을 사용하여 데이터 업데이트
중첩된 사전 값을 업데이트하려면 get_from_dict를 재사용하여 상위 사전을 검색하고 Operator.setitem 메서드를 사용하여 설정할 수 있습니다. value.
def set_in_dict(data_dict, map_list, value): get_from_dict(data_dict, map_list[:-1])[map_list[-1]] = value
사용 예
코드를 테스트해 보겠습니다.
data_dict = { "a": { "r": 1, "s": 2, "t": 3 }, "b": { "u": 1, "v": { "x": 1, "y": 2, "z": 3 }, "w": 3 } } map_list = ["a", "r"] print(get_from_dict(data_dict, map_list)) # Output: 1 map_list = ["b", "v", "y"] print(get_from_dict(data_dict, map_list)) # Output: 2 map_list = ["b", "v", "w"] set_in_dict(data_dict, map_list, 4) print(data_dict) # Updated dictionary with "w": 4
이 향상된 접근 방식은 Reduce()와 같은 강력한 Python 기능을 활용합니다. 및 Operator.getitem을 사용하면 중첩된 사전 작업을 효율적으로 수행하여 코드를 더 깔끔하고 효율적으로 만들 수 있습니다.
위 내용은 키 목록을 사용하여 Python에서 중첩된 사전 항목에 효율적으로 액세스하고 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!