繁体   English   中英

Python三元运算符和else中的赋值

[英]Python ternary operator and assignment in else

三元运算符非常有用,为什么它在这种特殊情况下不起作用:

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

三元运算符处理表达式而不是语句。 作业是一种陈述。 使用常规的if / else

写这个的正确方法是:

d[c] = (d[c] + 1) if c in d else 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM