سؤال

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
هل كانت مفيدة؟

المحلول

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

نصائح أخرى

The correct way to write this would be:

d[c] = (d[c] + 1) if c in d else 1
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top