[英]error with else statement in list comprehension
我在玩列表理解,但是else語句出現語法錯誤
doctor = ['house', 'cuddy', 'chase', 'thirteen', 'wilson']
first = [doc[0] for doc in doctor if doc[0] == 'h' else doc[3]]
這是什么問題?
以下代碼
doc[0] for doc in doctor if doc[0] == 'h' else doc[3]
大致翻譯成
for doc in doctor
if doc[0] == 'h'
doc[0]
else doc[3]
因此else部分沒有doc
定義。 正確的代碼是
first = [doc[0] if doc[0] == 'h' else doc[3] for doc in doctor]
其中
doc[0] if doc[0] == 'h' else doc[3]
是基於doc
每個迭代值的三元條件。
你可以試試這個嗎?
doctor = ['house', 'cuddy', 'chase', 'thirteen', 'wilson']
first = [doc[0] if doc[0] == 'h' else doc[3] for doc in doctor]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.