我看到函数调用中使用的“管道”字符(|
):
res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)
ax|bx
中管道的含义是什么?
答案 0 :(得分:98)
这也是联合集合运算符
set([1,2]) | set([2,3])
这将导致set([1, 2, 3])
答案 1 :(得分:55)
它是整数的按位OR 。例如,如果ax
或bx
中的一个或两个都是1
,则评估为1
,否则评估为0
。它也适用于其他整数,例如15 | 128 = 143
,即二进制的00001111 | 10000000 = 10001111
。
答案 2 :(得分:10)
答案 3 :(得分:10)
是的,上面的所有答案都是正确的。
虽然您可以为“|”找到更多异国情况的用例,但如果它是一个类使用的重载运算符,例如,
https://github.com/twitter/pycascading/wiki#pycascading
input = flow.source(Hfs(TextLine(), 'input_file.txt'))
output = flow.sink(Hfs(TextDelimited(), 'output_folder'))
input | map_replace(split_words, 'word') | group_by('word', native.count()) | output
在这个特定的用例管道中“|”运算符可以更好地被认为是unix管道运算符。但我同意,逐位运算符和联合集运算符是更常见的“|”用例在Python中。
答案 4 :(得分:4)
这是一个按位 - 或。
Python中所有运算符的文档可以在Python文档的Index - Symbols页面中找到。
答案 5 :(得分:2)
在 Python 3.9 中,管道被增强以合并(联合)字典。
>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'cheese': 3, 'aardvark': 'Ethel', 'spam': 1, 'eggs': 2}