Python ternary operator and assignment in else

。_饼干妹妹 提交于 2019-12-01 08:45:53

问题


Ternary operator is very useful, why it does not work in this particular case:

c="d"
d={}
d[c]+=1 if c in d else d[c]=1

It gives:

d[c]+=1 if c in d else d[c]=1
                           ^
SyntaxError: invalid syntax

I don't see nothing wrong here since the same thing without the ternary operator works:

c="d"
d={}
if c in d:
    d[c]+=1
else:
    d[c]=1

回答1:


The ternary operator works on expressions, not statements. Assignment is a statement. Use a regular if/else.




回答2:


The correct way to write this would be:

d[c] = (d[c] + 1) if c in d else 1


来源:https://stackoverflow.com/questions/21277896/python-ternary-operator-and-assignment-in-else

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!