web-dev-qa-db-ja.com

Pythonのパイプ文字

関数呼び出しで「パイプ」文字(|)が使用されています:

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

ax|bxのパイプの意味は何ですか?

62
alwbtc

ビット単位のOR整数です。たとえば、axまたはbxの一方または両方が1、これは1、それ以外の場合は0。また、他の整数、たとえば15 | 128 = 143、つまり00001111 | 10000000 = 10001111バイナリ。

56
AhmetB - Google

これは共用体集合演算子でもあります

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

これはset([1, 2, 3])になります

103
gui11aume

はい、上記のすべての答えは正しいです。

「|」のよりエキゾチックなユースケースを見つけることができますが、たとえば、クラスによって使用されるオーバーロードされた演算子である場合、

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で。

10
Tagar

ビット単位のORです。

Pythonのすべての演算子のドキュメントは、Pythonドキュメントの Index-Symbols ページにあります。

4
tzot