使用列表推导与词典时sytax错误

Bob*_*law 2 python python-3.x

我不确定为什么我的理解会出现语法错误

[mydict[k] for mydict in dlist if k in mydict else 'NOT PRESENT']
Run Code Online (Sandbox Code Playgroud)

该错误非常通用"语法错误 - 语法无效"

一个更简化的声明似乎工作正常

[mydict[k] for mydict in dlist]
Run Code Online (Sandbox Code Playgroud)

谁能告诉我什么导致了这个问题?

提前致谢

Joh*_*ica 6

if/else和for需要交换:

[mydict[k] if k in mydict else 'NOT PRESENT' for mydict in dlist]
Run Code Online (Sandbox Code Playgroud)

您可以使用get(k[,d])以下方法缩短

[mydict.get(k, 'NOT PRESENT') for mydict in dlist]
Run Code Online (Sandbox Code Playgroud)