Python 我+;=x>;0是什么意思?

Python 我+;=x>;0是什么意思?,python,Python,我正在查看一段代码,我想知道这个表达式是什么意思: target += counter[s[left]] >= 0 计数器[s[左]]>=0计算为布尔值,即True或False 撇开这一点不谈,target+=val相当于target=target+val 由于bool子类int,在数学上下文中True是1,False是0 本质上,这一行(可能是在修改计数器、s或左,或它们的任意组合的循环中)计算计数器[s[左]]大于或等于0目标+=计数器[s[左]>=0 相当于 target=targ

我正在查看一段代码,我想知道这个表达式是什么意思:

target += counter[s[left]] >= 0

计数器[s[左]]>=0
计算为布尔值,即
True
False

撇开这一点不谈,
target+=val
相当于
target=target+val

由于
bool
子类
int
,在数学上下文中
True
1
False
0


本质上,这一行(可能是在修改
计数器
s
,或它们的任意组合的循环中)计算
计数器[s[左]]
大于或等于
0

目标+=计数器[s[左]>=0

相当于

target=target+(如果计数器[s[左]]>=0,则为1,否则为0)

这是一条糟糕的蟒蛇。要求改变它。加零是愚蠢的,整个事情都令人困惑

if counter[s[left]] >= 0:
    target += 1

如果条件为true,则添加1;如果为false,则添加0`target+=counter[s[left]]>=0`表示`target+=(counter[s[left]]>=0)`其中
counter[s[left]]>=0
是一个
布尔值,根据condition@azro如果计数器[]中不存在s[left]怎么办?提示:
int(True)
为1。但是不要做奇怪的事情,每个人都会讨厌你。这是一个不遵循Python禅宗的经典案例,尤其是“可读性计数”这一行。如果你有很多这样的内容,尤其是在一行中,原始版本会更紧凑,可能更可读。
If counter[s[左]]>=0:target+=1
也是一行,更紧凑、更清晰。