Quale dei tre secondo te è uno stile di codifica migliore o più leggibile? foo
dovrebbe essere eseguito sulle voci di entrambi i dizionari, ma mydict2
può essere None
Codice stile - per con se
Opzione 1:
for a,b in mydict1.items():
foo(a,b)
if mydict2:
for a,b in mydict2.items():
foo(a,b)
Opzione 2:
for a,b in mydict1.items():
foo(a,b)
for a,b in mydict2.items() if mydict2 else dict().items():
foo(a,b)
Opzione 3:
for a,b in chain(mydict1.items(), mydict2.items() if mydict2 else dict().items()):
foo(a,b)
Sapete che iterare su 'mydict2.items()' non farà nulla se è vuoto? L'espressione ternaria è completamente ridondante. – jonrsharpe
@jonsharpe Ma l'OP dice che potrebbe essere "Nessuno". Cercando di scorrere su 'Nessuno' genera un errore. – Sam
@Sam quindi dovrebbero essere testati per identità - 'se mydict2 non è None' – jonrsharpe