Domanda

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
È stato utile?

Soluzione

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

Altri suggerimenti

The correct way to write this would be:

d[c] = (d[c] + 1) if c in d else 1
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top