2010-10-14 13 views
41

Google मुझे खोज नहीं देगा | = इसलिए मुझे प्रासंगिक दस्तावेज़ ढूंढने में परेशानी हो रही है। किसी को पता है?पायथन में = = (ior) क्या करता है?

+2

मुझे लगता है कि यह इंगित करने के लिए प्रासंगिक है, जैसा कि नीचे धूप के जवाब में है, '' 'को सेट यूनियन ऑपरेटर – TallChuck

उत्तर

37

पायथन में, और कई अन्य प्रोग्रामिंग भाषाओं, |bitwise-OR operation है। |=|+=+ पर है।

+8

के रूप में भी उपयोग किया जा सकता है क्या आप एक उदाहरण प्रदान कर सकते हैं? – minerals

8

यह एक द्विआधारी बिटवाइज या असाइनमेंट के बाएं हाथ और दाएं हाथ के किनारे करता है, फिर परिणाम को बाईं ओर परिवर्तनीय में संग्रहीत करता है।

http://docs.python.org/reference/expressions.html#binary-bitwise-operations

16

यह वर्तमान चर और अन्य के बीच सिर्फ एक या ऑपरेशन है।

r s r|=s 
-------------- 
T T T 
T F T 
F T T 
F F F 

उदाहरण के लिए::

>>> r=True 
>>> r|=False 
>>> r 
True 
>>> r=False 
>>> r|=False 
>>> r 
False 
>>> r|=True 
>>> r 
True 
+0

यह ऑपरेटर की एक विकृत छाप देता है; '|' बिट्स-या ऑपरेटर के लिए ऑपरेटर है, विशेष रूप से एक बुलियन ऑपरेटर नहीं, और 'बूल' के अलावा किसी अन्य चीज़ के लिए, यह वास्तव में 'ट्रू' या 'गलत' आउटपुट नहीं देगा। 'बूल '' int' का उप-वर्ग है, और अच्छा होने के लिए, उन्होंने' सत्य '/ 'गलत' आउटपुट बनाने के लिए इसे 'बूल' के लिए अधिभारित किया, लेकिन ज्यादातर मामलों में, बूलियन ऑपरेशन' या' के साथ किया जाना चाहिए, '' 'नहीं। '|' के लिए सामान्य उपयोग bitwise- या, या सेट-यूनियन हैं। उपयोग के बेहतर उदाहरण 'ए = 0 बी 1001; ए | = 0 बी 0010; प्रिंट (बिन (ए)) 'जो '0b1011' उत्पन्न करता है। – ShadowRanger

18

सेट के साथ प्रयोग किया जाता है जब यह संघ कार्रवाई निष्पादित T=True और F=False होने के नाते, उत्पादन रेखांकन देखें।

+1

मैं कुछ कोड पढ़ रहा था और '| =' का उपयोग संदर्भ संदर्भ में किया गया था, और यह तब तक नहीं था जब तक कि मैंने गड़बड़ नहीं की और यह पता लगाया कि मैंने देखा कि यह उत्तर भी यहां था – TallChuck

3

|= एक inplace, bitwise OR operation करता है और भी Python sets लिए लागू है।

उदाहरण के लिए

, दो सेट x और y शेयर निम्नलिखित बराबर अभिव्यक्ति की union:

>>> x = x | y            # (1) 
>>> x |= y             # (2) 
>>> x.__ior__(y)           # (3) 

जहां x के अंतिम मूल्य के बराबर या तो कर रहा है:

  1. एक नियत या आपरेशन
  2. एक इनस्थल या ऑपरेशन
  3. एक जगह या विशेष विधि

पाइथन ऑपरेटरों के विशेष तरीकों पर section B.8 of Dive in Python 3 भी देखें।

>>> x = set("abc") 
>>> y = set("def") 

>>> # OR, | 
>>> x | y 
{'a', 'b', 'c', 'd', 'e', 'f'} 
>>> x              # `x` is unchanged 
{'a', 'b', 'c'} 

>>> # Inplace OR, |= 
>>> x |= y 
>>> x              # `x` is reassigned 
{'a', 'b', 'c', 'd', 'e', 'f'} 

यहाँ overloading the __ior__() method का एक उदाहरण एक MutableSet सार आधार वर्ग में iterables पुनरावृति करने के लिए है:


यहाँ (|) कुछ की तुलना उदाहरण या और inplace या (|=) सेट करने के लिए लागू कर रहे हैं। इसे उप-वर्गीकृत देखें और आर हेटिंगर के OrderedSet recipe (see lines 3 and 10 respectively) में लागू किया गया है। एक सेट अपडेट करने के लिए |= का उपयोग क्यों करते हुए thread on Python-ideas पर है।

0

यह थोड़ा सा है या। मान लें कि हमारे पास 32 |= 10 है, चित्र 32 और 10 बाइनरी है।

32 = 10 0000 
10 = 00 1010 

अब क्योंकि | है या, थोड़ा सा या दो नंबरों पर

i.e 1 या 0 -> 1, 0 या 0 -> 0।श्रृंखला

10 0000 | 00 1010 = 10 1010. 

नीचे इस जारी रखें अब एक दशमलव में द्विआधारी बदलने के लिए, 10 1010 = 42.

के लिए | =, ज्ञात उदाहरण के बारे में सोच, x +=5। इसका अर्थ है x = x + 5, इसलिए यदि हमारे पास x |= 5 है, तो इसका अर्थ है x = x bitwiseor with 5

संबंधित मुद्दे