The ternary operator works on expressions, not statements. Assignment is a statement. Use a regular if
/else
.
Python ternary operator and assignment in else
-
01-10-2022 - |
Question
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
Solution
OTHER TIPS
The correct way to write this would be:
d[c] = (d[c] + 1) if c in d else 1
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow