Welcher der drei ist Ihrer Meinung nach ein besserer Codierungsstil oder besser lesbar? foo
sollte auf die Elemente aus beiden Wörterbücher ausgeführt werden, aber mydict2
kann None
Code style - for with if
Option 1:
for a,b in mydict1.items():
foo(a,b)
if mydict2:
for a,b in mydict2.items():
foo(a,b)
Option 2:
for a,b in mydict1.items():
foo(a,b)
for a,b in mydict2.items() if mydict2 else dict().items():
foo(a,b)
Option 3:
for a,b in chain(mydict1.items(), mydict2.items() if mydict2 else dict().items()):
foo(a,b)
Sie wissen, iterating über 'mydict2.items()' wird nur nichts tun, wenn es leer ist? Der ternäre Ausdruck ist vollständig redundant. – jonrsharpe
@jonsharpe Aber das OP sagt, es könnte 'None' sein. Wenn Sie versuchen, über "None" zu iterieren, wird ein Fehler ausgegeben. – Sam
@Sam dann sollten sie nach Identität testen - 'wenn mydict2 nicht None' ist – jonrsharpe