Python 将列表理解与词典一起使用时出现sytax错误
我不知道为什么我在理解时会出现语法错误Python 将列表理解与词典一起使用时出现sytax错误,python,python-3.x,Python,Python 3.x,我不知道为什么我在理解时会出现语法错误 [mydict[k] for mydict in dlist if k in mydict else 'NOT PRESENT'] 该错误非常常见“语法错误-无效语法” 一个更简单的声明似乎很管用 [mydict[k] for mydict in dlist] 有人能告诉我是什么引起了这个问题吗 提前感谢需要交换的if/else和for: [mydict[k] if k in mydict else 'NOT PRESENT' for mydict i
[mydict[k] for mydict in dlist if k in mydict else 'NOT PRESENT']
该错误非常常见“语法错误-无效语法”
一个更简单的声明似乎很管用
[mydict[k] for mydict in dlist]
有人能告诉我是什么引起了这个问题吗
提前感谢需要交换的if/else和for:
[mydict[k] if k in mydict else 'NOT PRESENT' for mydict in dlist]
您可以通过使用get(k[,d])
来缩短此时间:
列表理解的
if
片段不是三元表达式的一部分
[mydict[k] if k in mydict else 'NOT PRESENT' for mydict in dlist]
您是否尝试删除其他“不存在”选项?我认为这不是一个有效的语法。
k
在哪里设置?在列表理解之外?你不能在列表中使用其他类似的东西comprehension@Marius是k和dlist设置得更早。对不起,我忘了提到这是三元运算符,不是列表。您可以将三元运算符放在列表理解的开头,请参见下面的答案:但它与列表理解本身无关(不超过f(x)
是列表理解语法的一部分,因为您可以执行[[f(x)for x in lst])
这是否意味着我不能在列表理解中使用if-else作为过滤器,而只能在列表理解的该部分使用if-else?是的。
[mydict[k] if k in mydict else 'NOT PRESENT' for mydict in dlist]