Seite 1 von 1

nested dict get value for another value in the same dict

Verfasst: Sonntag 29. November 2020, 11:32
von swbo
Hallo,

ist es möglich einen Wert in einem dictionary auf einen anderen Wert im gleichen dictionary zu übernehmen?

Ggf. so?

Code: Alles auswählen

dict_xy = {
	"1": {
		"val_1": "ab",
		"val_2": "cd",
		"val_3": "ef",
	}
	"2": {
		"val_1": dict_xy.get(["1"]["val_1"]),
		"val_2": ...,
		"val_3": ...,
	}
}
Vielen Dank für Eure Hilfe.

Re: nested dict get value for another value in the same dict

Verfasst: Sonntag 29. November 2020, 15:51
von __blackjack__
@swbo: Das geht offensichtlich nicht weil `dict_xy` erst definiert ist nachdem das Wörterbuchliteral ausgewertet wurde.

Mir ist nicht wirklich klar was Du willst, denn Du könntest da ja einfach "ab" hinschreiben. Falls der Wert nur einmal im Code stehen soll, definiert man sich einfach vorher eine Variable die man dann zweimal referenziert.

Code: Alles auswählen

    value = "ab"    
    mapping = {
        "1": {
            "val_1": value,
            "val_2": "cd",
            "val_3": "ef",
        },
        "2": {
            "val_1": value,
            "val_2": ...,
            "val_3": ...,
        },
    }

Re: nested dict get value for another value in the same dict

Verfasst: Sonntag 29. November 2020, 18:50
von noisefloor
Hallo,

passender Thread bei SO, wo das thematisiert wird: Link. Ist zwar von 2010, gilt aber prinzipiell auch heute noch.
Die Frage ist aber IMHO eher, was der tiefere Sinn dahinter ist.

Gruß, noisefloor