2013-07-02 3 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__' method/protocol] (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, он довольно универсален и существует на большинстве языков.

Что касается вашего вопроса о заказе: set s в Python не сохраняют порядок, они представляют собой «неупорядоченные коллекции уникальных элементов» по ​​определению.

+1

Спасибо! Я прочитаю больше об этом: D – user2489526

Смежные вопросы