Bisakah kita menggunakan elif
dalam pemahaman daftar?
Contoh:
l = [1, 2, 3, 4, 5]
for values in l:
if values==1:
print 'yes'
elif values==2:
print 'no'
else:
print 'idle'
Bisakah kita memasukkan elif
dalam pemahaman daftar kita, dengan cara yang mirip dengan kode di atas?
Misalnya, jawaban seperti:
['yes', 'no', 'idle', 'idle', 'idle']
Sampai sekarang, saya hanya menggunakan if
dan else
dalam pemahaman daftar.
['yes', 'no']
perlu dibuat. Untuk melakukan ini, Anda dapat melakukan:['yes' if v == 1 else 'no' for v in l if values in [1,2]]
. Saat ini saya tidak dapat memikirkan cara yang lebih bersih untuk melakukan ini.sumber
'A' if grade>=90 else 'B' if grade>=80 else 'C' if grade>=70 else 'F'
.d
luar pemahaman?Anda bisa, semacam itu.
Perhatikan bahwa ketika Anda menggunakan sytax seperti:
Anda menggunakan bentuk terner dari operator if / else (jika Anda terbiasa dengan bahasa seperti C, ini seperti
?:
konstruksinya :)(v == 1 ? 'yes' : 'no')
.Bentuk terner dari operator if / else tidak memiliki 'elif' bawaan, tetapi Anda dapat mensimulasikannya dalam kondisi 'else':
Ini seperti mengatakan:
Jadi tidak ada konstruksi 'elif' langsung seperti yang Anda tanyakan, tetapi dapat disimulasikan dengan pernyataan if / else bersarang.
sumber
Mungkin Anda menginginkan ini:
sumber
Anda dapat menggunakan pemahaman daftar jika Anda akan membuat daftar lain dari aslinya.
sumber
Cara mudah lainnya adalah dengan menggunakan pemahaman daftar bersyarat seperti ini:
memberi Anda jawaban yang benar:
['yes', 'no', 'idle', 'idle', 'idle']
sumber