三元运算符非常有用,为什么它在这种特殊情况下不起作用:
c="d"
d={}
d[c]+=1 if c in d else d[c]=1
它给出了:
d[c]+=1 if c in d else d[c]=1
^
SyntaxError: invalid syntax
我没有看到任何错误,因为在没有三元运算符的情况下也是如此:
c="d"
d={}
if c in d:
d[c]+=1
else:
d[c]=1
答案 0 :(得分:11)
三元运算符处理表达式而不是语句。作业是一种陈述。使用常规if
/ else
。
答案 1 :(得分:3)
写这个的正确方法是:
d[c] = (d[c] + 1) if c in d else 1