Ich habe eine Frage zu Redewendungen und Lesbarkeit, und es scheint einen Konflikt zwischen Python-Philosophien für diesen speziellen Fall zu geben:
Ich möchte Wörterbuch A aus Wörterbuch B erstellen. Wenn in B kein bestimmter Schlüssel vorhanden ist, tun Sie nichts und fahren Sie fort.
Welcher Weg ist besser?
try:
A["blah"] = B["blah"]
except KeyError:
pass
oder
if "blah" in B:
A["blah"] = B["blah"]
"Tu und bitte um Vergebung" vs. "Einfachheit und Aussagekraft".
Welches ist besser und warum?
A.update(B)
bei dir nicht
has_key
wurde zugunsten von in
und Überprüfung B.keys()
einer O (1) -Operation in eine O (n) -Operation veraltet .
.has_key
ist veraltet und keys
erstellt nicht benötigte Liste in py2k und ist in py3k redundant
A = dict((k, v) for (k, v) in B if we_want_to_include(k))
.
if "blah" in B.keys()
oder geschrieben seinif B.has_key("blah")
.