문제

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