问题
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