Python中的管道字符

Posted

技术标签:

【中文标题】Python中的管道字符【英文标题】:Pipe character in Python 【发布时间】:2011-08-24 17:23:19 【问题描述】:

我看到函数调用中使用了“管道”字符 (|):

res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)

ax|bx中的管道是什么意思?

【问题讨论】:

这对你来说应该很有趣***.com/questions/28252585/… 【参考方案1】:

这也是联合集运算符

set([1,2]) | set([2,3])

这将导致set([1, 2, 3])

【讨论】:

这可能比按位运算更常见。【参考方案2】:

它是整数的位或。例如,如果axbx 之一或两者为1,则计算结果为1,否则为0。它也适用于其他整数,例如15 | 128 = 143,即二进制中的00001111 | 10000000 = 10001111

【讨论】:

Python 没有逻辑或运算符。 5 = 101, 7 = 111, 101 | 111 = 111 = 7 @Ignacio:Python 没有逻辑或运算符?!那你怎么称呼or @zeekay:正确。 andor 总是返回它们的操作数之一,而不是总是返回 TrueFalse,因此是“合并”而不是“逻辑”。 迈克说了什么。更一般地,它使用第二个操作数调用第一个操作数的__or__ 方法,因此您可以为自己的类定义其行为。【参考方案3】:

是的,以上所有答案都是正确的。

虽然“|”可以找到更多奇特的用例,但如果它是一个类使用的重载运算符,例如,

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

在这个特定的用例中,管道“|” operator 可以更好地被认为是 unix 管道操作员。但我同意,按位运算符和联合集运算符是“|”更常见的用例在 Python 中。

【讨论】:

【参考方案4】:

Bitwise OR.

【讨论】:

【参考方案5】:

在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

【讨论】:

【参考方案6】:

这是一个按位或。

Python 中所有运算符的文档都可以在 Python 文档的Index - Symbols 页面中找到。

【讨论】:

以上是关于Python中的管道字符的主要内容,如果未能解决你的问题,请参考以下文章

python中的多个字符替换字符串不适用于管道[重复]

管道到头部导致从 python 调用的 shell 脚本中的管道损坏

通过回声管道将python变量(字符串)传递给bash命令[重复]

公式(函数)中的管道`|`字符

Python 管道中的条件元素

python中的多存储库管道