[英]Python: In-place "not'ing" of booleans
我有时有一个像下面这样的布尔值字典;
d = {'a': True, 'b': False, 'c': False}
我将其用作一组开关,这些开关都必须打开( True
)才能进行某些操作。 在迭代时,这些开关然后被翻转,例如
for char in text:
if char == '0':
d['a'] = not d['a'] # State of 'a' is switched
...
'a'
必须在上面查找两次的事实困扰着我。 如果我用1
和-1
来表示开关的值,我可以像d['a'] *= -1
那样进行切换,它只引用d['a']
一次。
理想情况下,Python 会为我提供一个就地“非赋值”运算符。
我找到了我的接线员! 可以使用按位异或赋值运算符,
d['a'] ^= True
我还没有弄清楚应该如何将按位运算符用于一般 Python 类型,但我想它们在布尔值方面按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.