使用列表推导与词典时出现语法错误

时间:2013-07-05 00:16:16

标签: python python-3.x

我不确定为什么我会因为这种理解而出现语法错误

[mydict[k] for mydict in dlist if k in mydict else 'NOT PRESENT']

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

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

[mydict[k] for mydict in dlist]

有人能告诉我什么导致了这个问题吗?

提前致谢

2 个答案:

答案 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]