Können wir elif
beim Listenverständnis verwenden?
Beispiel:
l = [1, 2, 3, 4, 5]
for values in l:
if values==1:
print 'yes'
elif values==2:
print 'no'
else:
print 'idle'
Können wir das elif
in unser Listenverständnis aufnehmen, ähnlich wie im obigen Code?
Zum Beispiel eine Antwort wie:
['yes', 'no', 'idle', 'idle', 'idle']
Bisher habe ich nur if
und else
im Listenverständnis verwendet.
['yes', 'no']
gemacht werden müssen. Dazu können Sie Folgendes tun :['yes' if v == 1 else 'no' for v in l if values in [1,2]]
. Ich kann mir derzeit keinen saubereren Weg vorstellen, dies zu tun.quelle
'A' if grade>=90 else 'B' if grade>=80 else 'C' if grade>=70 else 'F'
.d
außerhalb des Verständnisses zu definieren?Sie können irgendwie.
Beachten Sie Folgendes, wenn Sie Sytax verwenden:
Sie verwenden die ternäre Form des if / else-Operators (wenn Sie mit Sprachen wie C vertraut sind, entspricht dies dem
?:
Konstrukt :)(v == 1 ? 'yes' : 'no')
.In der ternären Form des if / else-Operators ist kein 'elif' integriert, aber Sie können es im 'else'-Zustand simulieren:
Das ist wie zu sagen:
Es gibt also kein direktes 'elif'-Konstrukt, nach dem Sie gefragt haben, aber es kann mit verschachtelten if / else-Anweisungen simuliert werden.
quelle
Vielleicht willst du das:
quelle
Sie können das Listenverständnis verwenden, wenn Sie eine andere Liste aus dem Original erstellen.
quelle
Eine andere einfache Möglichkeit besteht darin, das bedingte Listenverständnis wie folgt zu verwenden:
gibt Ihnen die richtige Antwort:
['Ja', 'Nein', 'Leerlauf', 'Leerlauf', 'Leerlauf']
quelle