谷歌不让我搜索|=,所以我很难找到相关的文件。有人知道吗?
当前回答
它对赋值的左侧和右侧执行二进制位或运算,然后将结果存储在左侧变量中。
http://docs.python.org/reference/expressions.html#binary-bitwise-operations
其他回答
在Python和许多其他编程语言中,|是位或操作。|=之于|,正如+=之于+,即运算和赋值的组合。
var |= value是var = var | value的缩写。
一个常见的用例是合并两个集合:
>>> a = {1,2}; a |= {3,4}; print(a)
{1, 2, 3, 4}
它对赋值的左侧和右侧执行二进制位或运算,然后将结果存储在左侧变量中。
http://docs.python.org/reference/expressions.html#binary-bitwise-operations
希望这也能帮助其他人理解:
dict1 = {'a': 'dict1', 'b': 'dict1', 'c': 'dict1'}
dict2 = {'c': 'dict2', 'd': 'dict2', 'e': 'dict2'}
dict3 = dict1.copy()
dict3 = dict3 | dict2
dict4 = dict1.copy()
dict4 |= dict2
print(f'dict1:\n {dict1}')
print(f'dict2:\n {dict2}')
print(f'dict1 after dict1 = dict1 | dict2 (dict2 index c replaces dict1 index c, items in dict1 are discarded if present in dict2):\n {dict3}')
print(f'dict1 after dict1 |= dict2 (same behaviour as dict1 = dict1 | dict2):\n {dict4}')
dict5 = dict1.copy()
dict5 = dict2 | dict5
dict6 = dict2.copy()
dict6 |= dict1
print(f'dict1 after dict1 = dict2 | dict1 (dict2 index c is missing, dict1 index c was retained, items in dict2 are discarded if present in dict1):\n {dict5}')
print(f'dict2 after dict2 |= dict1 (same behaviour as dict2 = dict2 | dict1):\n {dict6}')
dict1:
{'a': 'dict1', 'b': 'dict1', 'c': 'dict1'}
dict2:
{'c': 'dict2', 'd': 'dict2', 'e': 'dict2'}
dict1 after dict1 = dict1 | dict2 (dict2 index c replaces dict1 index c, items in dict1 are discarded if present in dict2):
{'a': 'dict1', 'b': 'dict1', 'c': 'dict2', 'd': 'dict2', 'e': 'dict2'}
dict1 after dict1 |= dict2 (same behaviour as dict1 = dict1 | dict2):
{'a': 'dict1', 'b': 'dict1', 'c': 'dict2', 'd': 'dict2', 'e': 'dict2'}
dict1 after dict1 = dict2 | dict1 (dict2 index c is missing, dict1 index c was retained, items in dict2 are discarded if present in dict1):
{'c': 'dict1', 'd': 'dict2', 'e': 'dict2', 'a': 'dict1', 'b': 'dict1'}
dict2 after dict2 |= dict1 (same behaviour as dict2 = dict2 | dict1):
{'c': 'dict1', 'd': 'dict2', 'e': 'dict2', 'a': 'dict1', 'b': 'dict1'}
这只是当前变量和另一个变量之间的OR运算。当T=True和F=False时,请以图形方式查看输出:
r | s | r|=s |
---|---|---|
T | T | T |
T | F | T |
F | T | T |
F | F | F |
例如:
>>> r=True
>>> r|=False
>>> r
True
>>> r=False
>>> r|=False
>>> r
False
>>> r|=True
>>> r
True
它是位或。 假设我们有32 | 10,图片32和10的二进制:
32 = 10 0000
10 = 00 1010
现在,因为|是“或”运算,对这两个数字进行“或”运算
即1或0——> 1 0或0——> 0。沿着这个链条继续下去:
10 0000 | 00 1010 = 10 1010.
现在把二进制变成十进制,10 1010 = 42。
对于|=,考虑已知的例子,x +=5。这意味着x = x + 5,因此如果我们有x |= 5,这意味着x = x位或5。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录