La risposta di IfLoop (e il commento di MatToufoutu) funzionano perfettamente per variabili indipendenti, ma volevo fornire una risposta a chiunque cerchi di fare qualcosa di simile per le singole voci in liste, tuple o dizionari.
Dizionari
existing_dict = {"spam": 1, "eggs": 2}
existing_dict["foo"] = existing_dict["foo"] if "foo" in existing_dict else 3
Returns {"spam": 1, "eggs": 2, "foo": 3}
Liste
existing_list = ["spam","eggs"]
existing_list = existing_list if len(existing_list)==3 else
existing_list + ["foo"]
Returns ["spam", "eggs", "foo"]
tuple
existing_tuple = ("spam","eggs")
existing_tuple = existing_tuple if len(existing_tuple)==3 else
existing_tuple + ("foo",)
Returns ("spam", "eggs", "foo")
(Non dimenticare la virgola in ("foo",)
per definire una tupla "single".)
La soluzione liste e tuple sarà più complicato se si vuole fare di più che controllare la lunghezza e aggiungere alla fine. Tuttavia, questo dà un sapore di ciò che puoi fare.
fonte
2014-07-01 14:25:04
In quale circostanza si farebbe riferimento a variabili che potrebbero non esistere? Vuoi fare riferimento a variabili che sono state dichiarate ma non ancora inizializzate? – mwcz