谷歌不让我搜索|=,所以我很难找到相关的文件。有人知道吗?
当前回答
在Python和许多其他编程语言中,|是位或操作。|=之于|,正如+=之于+,即运算和赋值的组合。
var |= value是var = var | value的缩写。
一个常见的用例是合并两个集合:
>>> a = {1,2}; a |= {3,4}; print(a)
{1, 2, 3, 4}
其他回答
在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
|是位或。所以x |= y等价于x = x | y。
对于集合,|有一个相关的含义:集合并集。与你在数学中使用OR求两个集合的交集相同,你可以在python中使用|
*注意:这两个表达式不是100%等效的。在x |= y后,id(x) == id(y)。x = x | y后,id(x) != id(y)
它表示按位或操作。
例子:
x = 5
x |= 3 #which is similar to x = x | 3
print(x)
答案:7
它是如何工作的?
The binary of 5 is : 0 1 0 1
The binary of 3 is : 0 0 1 1
OR operation : (If one of both sides are 1/True then result is 1/True)
0 1 0 1 #Binary of 5
0 0 1 1 #Binary of 3
---------------------
0 1 1 1 #Binary of 7
所以答案是7
给出一个用例(在花时间分析其他答案之后):
def process(item):
return bool(item) # imagine some sort of complex processing taking place above
def any_success(data): # return True if at least one is successful
at_least_one = False
for item in data:
at_least_one |= process(item)
return at_least_one
>>> any_success([False, False, False])
False
>>> any_success([True, False, False])
True
>>> any_success([False, True, False])
True
基本上没有短路:如果你需要处理每个项目并记录至少一次成功,可能会有用。
请参见此回答中的注意事项
推荐文章
- 如何添加选项没有任何参数?
- 在Python Django中运行单元测试时,如何禁用日志记录?
- Django CSRF检查Ajax POST请求失败
- |= (ior)在Python中做什么?
- 如何重命名一个模型字段使用南方?
- Python中的异步方法调用?
- 如何比较Python中对象的类型?
- 在pip install中“Failed building wheel for X”是什么意思?
- 是否应该在Python环境中使用conda或conda-forge ?
- 如何获取文件夹中的最新文件?
- 在namedtuple中输入提示
- 如何使用pyplot.barh()在每个条上显示条的值
- Python json。loads显示ValueError:额外数据
- 如何按值排序计数器?python -
- 从另一个文件导入变量?