Google不会让我搜索| =所以我无法找到相关文档。有人知道吗?
答案 0 :(得分:66)
在Python和许多其他编程语言中,|
是bitwise-OR operation。 |=
|
为+=
,+
为var |= value
,即操作和停止的组合。
var = var | value
是{{1}}
答案 1 :(得分:40)
与sets一起使用时,它会执行并集操作。
答案 2 :(得分:28)
这只是当前变量和另一个变量之间的OR运算。成为lineModel.setSeriesColors("58BA27,FFCC33,F74A4A,F52F2F,A30303");
lineModel.setExtender("chartExtender");
和T=True
,请以图形方式查看输出:
F=False
例如:
r s r|=s
--------------
T T T
T F T
F T T
F F F
答案 3 :(得分:22)
|=
执行inplace, bitwise OR operation并执行union的Python sets操作。
例如,两个集合x
和y
的并集共享以下等效表达式:
>>> x = x | y # (1)
>>> x |= y # (2)
>>> x.__ior__(y) # (3)
其中x
的最终值相当于:
另见section B.8 of Dive in Python 3关于Python运算符的特殊方法。
以下是一些比较OR(|
)和应用于集合的现场OR(|=
)的示例:
>>> x = {"a", "b", "c"}
>>> y = {"d", "e", "f"}
>>> # OR, |
>>> x | y
{'a', 'b', 'c', 'd', 'e', 'f'}
>>> x # `x` is unchanged
{'a', 'b', 'c'}
>>> # Inplace OR, |=
>>> x |= y
>>> x # `x` is reassigned
{'a', 'b', 'c', 'd', 'e', 'f'}
以下是overloading the __ior__()
method迭代MutableSet
抽象基类中的迭代的示例。在Raymond Hettinger的OrderedSet recipe (see lines 3 and 10 respectively)中看到它也被分类并应用。以下是thread on Python-ideas有关使用|=
更新集合的原因。
答案 4 :(得分:9)
它执行赋值的左侧和右侧的二进制按位OR,然后将结果存储在左侧变量中。
http://docs.python.org/reference/expressions.html#binary-bitwise-operations
答案 5 :(得分:1)
这是按位还是。
假设我们有32 |= 10
,图片32和10是二进制。
32 = 10 0000
10 = 00 1010
现在因为|是或,做一个按位或两个数字
即1或0 - > 1,0或0 - >在链中继续这个
10 0000 | 00 1010 = 10 1010.
现在将二进制更改为十进制,10 1010 = 42。
对于| =,请考虑已知示例x +=5
。这意味着x = x + 5,
因此,如果我们有x |= 5
,则表示x = x bitwiseor with 5
。
答案 6 :(得分:1)
在Python中,| =(ior)的作用类似于联合操作。 就像x = 5和x | = 5一样,这两个值都将首先转换为二进制值,然后执行并运算并得到答案5。
答案 7 :(得分:1)
给出一个用例(在花了一些时间回答其他问题之后):
def has_some_property(item):
fake_test_result = bool(item)
return fake_rest_result
def lmk(data): # let_me_know_if_at_least_one_succeeds
at_least_one = False
for item in data:
at_least_one |= has_some_property(item)
return at_least_one
>>> lmk([False, False, False])
False
>>> lmk([True, False, False])
True
>>> lmk([False, True, False])
True
另请参阅this answer
中的警告