Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mithilfe einer Schlüsselliste effizient auf verschachtelte Wörterbuchelemente in Python zugreifen und diese aktualisieren?

Wie kann ich mithilfe einer Schlüsselliste effizient auf verschachtelte Wörterbuchelemente in Python zugreifen und diese aktualisieren?

DDD
DDDOriginal
2024-12-27 02:53:08458Durchsuche

How Can I Efficiently Access and Update Nested Dictionary Items in Python Using a List of Keys?

Zugriff auf verschachtelte Wörterbuchelemente mithilfe einer Liste von Schlüsseln

Der Zugriff auf verschachtelte Wörterbuchstrukturen kann eine häufige Aufgabe in der Python-Programmierung sein. Hier untersuchen wir einen effizienteren Ansatz als den bereitgestellten Code zum Abrufen und Ändern von Daten in einem komplexen Wörterbuch mithilfe einer Liste von Schlüsseln.

Verwendung von Reduce() für Enhanced Traversal

Die Funktion „reduce()“ ist ein leistungsstarkes Werkzeug zum Transformieren einer Wertefolge durch Anwenden einer einzigen Operation. In diesem Fall können wir es verwenden, um die Wörterbuchstruktur zu durchlaufen und die Liste der Schlüssel auf einen einzigen Wert zu reduzieren. Die Methode „operator.getitem“ wird als Operation verwendet, um bei jeder Iteration die nächste Wörterbuchebene abzurufen.

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)

Aktualisieren von Daten mit „reduc()“ und „operator.setitem“

Um verschachtelte Wörterbuchwerte zu aktualisieren, können wir get_from_dict erneut verwenden, um das übergeordnete Wörterbuch abzurufen, und die Methode „operator.setitem“ verwenden, um das festzulegen Wert.

def set_in_dict(data_dict, map_list, value):
    get_from_dict(data_dict, map_list[:-1])[map_list[-1]] = value

Beispielverwendung

Testen wir unseren Code:

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

Dieser erweiterte Ansatz nutzt leistungsstarke Python-Funktionen wie Reduce() und „operator.getitem“, um verschachtelte Wörterbuchoperationen effizient auszuführen und so Ihren Code sauberer und effizienter zu machen.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Schlüsselliste effizient auf verschachtelte Wörterbuchelemente in Python zugreifen und diese aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn