Ich habe ein Wörterbuch mit Wörterbüchern, die auf folgende Weise organisiert sind, wobei a, b, c, d, e, f, ... beliebige Zahlen sind
{key1: {a: value,
b: value,
c: value},
key2: {d: value,
e: value},
keyX: {f: valueX}}
Was ist ein Weg (in Python 3), um den Minimal- und Maximalwert der Schlüssel a, b, c, d, e, f, ... zu ermitteln? Vorzugsweise als Einzeiler und nicht als for-Schleife.
Antworten:
3 für die Antwort № 1Betrachten Sie das folgende Wörterbuch:
d = {1: {2: 3, 4: 5, 5: 4}, 2: {9: 10, 10: 9}}
Sie können das Wörterbuch reduzieren, um die Schlüssel der verschachtelten Wörterbücher auf derselben Ebene zu erhalten:
min(subkey for key in d for subkey in d[key])
# returns 2
3 für die Antwort № 2
Ein geschachteltes Generatorverständnis wird den Trick erfüllen. Der erste zieht die Wörterbücher aus dem äußeren Wörterbuch, der zweite die Schlüssel von diesen.
dic = {key1: {a: value,
b: value,
c: value},
key2: {d: value,
e: value},
keyX: {f: valueX}}
min(k for inner in dic.values() for k in inner.keys())