2
noob問題,但我不知道是什麼符號|被稱爲或意味着什麼,我無法在網上找到任何關於它的信息。有人可以解釋嗎?爲什麼會發生以下情況?訂單如何轉換?符號是什麼|在Python中的意思是?
>>> L = [ 5 | 3, 4]
>>> set(L)
{4, 7}
>>> L
[7, 4]
noob問題,但我不知道是什麼符號|被稱爲或意味着什麼,我無法在網上找到任何關於它的信息。有人可以解釋嗎?爲什麼會發生以下情況?訂單如何轉換?符號是什麼|在Python中的意思是?
>>> L = [ 5 | 3, 4]
>>> set(L)
{4, 7}
>>> L
[7, 4]
它被稱爲bitwise OR運算符。對於示例:
0101 (decimal 5) OR 0011 (decimal 3) = 0111 (decimal 7)
(也恰好是在維基百科上的那個)
注意,對於每個對應的一對的位,如果任一比特爲1
,然後將所得的位爲1
。如果兩個位均爲0
,則結果位爲0
。
還要注意的是|
不是Python特定的,這是很普遍的,大多數語言中存在。
至於你對Python的順序問題:set
s不保存順序,它們是按照定義「無序的唯一元素集合」。
謝謝!我會讀更多關於這個:D – user2489526
至於'|'符號,請參閱下面回答。訂購不一定保留在集合中。 – sberry
它取決於類型(以及整數它確實是一個[按位或(http://en.wikipedia.org/wiki/Bitwise_operation#OR)操作) - Python是相當靈活,且支持'|'經由['__or__'方法/協議](http://docs.python.org/2/reference/datamodel.html#emulating-numeric-types)。 (許多其它語言也支持各種運算符重載 - 所以要小心看問題的確切類型。) – user2246674