2013-07-02 26 views
2

noob問題,但我不知道是什麼符號|被稱爲或意味着什麼,我無法在網上找到任何關於它的信息。有人可以解釋嗎?爲什麼會發生以下情況?訂單如何轉換?符號是什麼|在Python中的意思是?

>>> L = [ 5 | 3, 4] 
>>> set(L) 
{4, 7} 
>>> L 
[7, 4] 
+0

至於'|'符號,請參閱下面回答。訂購不一定保留在集合中。 – sberry

+0

它取決於類型(以及整數它確實是一個[按位或(http://en.wikipedia.org/wiki/Bitwise_operation#OR)操作) - Python是相當靈活,且支持'|'經由['__or__'方法/協議](http://docs.python.org/2/reference/datamodel.html#emulating-numeric-types)。 (許多其它語言也支持各種運算符重載 - 所以要小心看問題的確切類型。) – user2246674

回答

1

它被稱爲bitwise OR運算符。對於示例:

 
    0101 (decimal 5) 
OR 0011 (decimal 3) 
= 0111 (decimal 7) 

(也恰好是在維基百科上的那個)

注意,對於每個對應的一對的位,如果任一比特爲1,然後將所得的位爲1。如果兩個位均爲0,則結果位爲0

還要注意的是|不是Python特定的,這是很普遍的,大多數語言中存在。

至於你對Python的順序問題:set s不保存順序,它們是按照定義「無序的唯一元素集合」。

+1

謝謝!我會讀更多關於這個:D – user2489526