Czy możemy używać elif
w zrozumieniu listy?
Przykład:
l = [1, 2, 3, 4, 5]
for values in l:
if values==1:
print 'yes'
elif values==2:
print 'no'
else:
print 'idle'
Czy możemy włączyć do elif
naszego rozumienia listy, podobnie jak w powyższym kodzie?
Na przykład odpowiedź taka:
['yes', 'no', 'idle', 'idle', 'idle']
Do tej pory używałem tylko if
i ze else
zrozumieniem listy.
['yes', 'no']
zostać stworzony. Aby to zrobić, można zrobić:['yes' if v == 1 else 'no' for v in l if values in [1,2]]
. Obecnie nie mogę wymyślić prostszego sposobu, aby to zrobić.źródło
'A' if grade>=90 else 'B' if grade>=80 else 'C' if grade>=70 else 'F'
.d
poza zrozumieniem?W pewnym sensie możesz.
Zauważ, że kiedy używasz sytax, takich jak:
Używasz trójskładnikowej formy operatora if / else (jeśli znasz języki takie jak C, wygląda to jak
?:
konstrukcja(v == 1 ? 'yes' : 'no')
:).Postać trójskładnikowa operatora if / else nie ma wbudowanego elementu „elif”, ale można go zasymulować w warunku „else”:
To tak, jakby powiedzieć:
Nie ma więc bezpośredniej konstrukcji „elif”, o którą pytałeś, ale można ją zasymulować za pomocą zagnieżdżonych instrukcji if / else.
źródło
Może chcesz tego:
źródło
Możesz użyć rozumienia list, jeśli zamierzasz utworzyć inną listę na podstawie oryginału.
źródło
Innym prostym sposobem jest użycie list warunkowych w następujący sposób:
daje prawidłową odpowiedź:
[„tak”, „nie”, „bezczynny”, „bezczynny”, „bezczynny”]
źródło