我不确定为什么我会因为这种理解而出现语法错误
[mydict[k] for mydict in dlist if k in mydict else 'NOT PRESENT']
该错误非常通用“语法错误 - 语法无效”
更简化的声明似乎工作正常
[mydict[k] for mydict in dlist]
有人能告诉我什么导致了这个问题吗?
提前致谢
答案 0 :(得分:6)
if / else和for需要交换:
[mydict[k] if k in mydict else 'NOT PRESENT' for mydict in dlist]
您可以使用get(k[,d])
:
[mydict.get(k, 'NOT PRESENT') for mydict in dlist]
答案 1 :(得分:1)
列表推导的if
片段是不是三元表达式的一部分。
[mydict[k] if k in mydict else 'NOT PRESENT' for mydict in dlist]