2015-06-02 9 views
36

मुझे आश्चर्य है कि ,= या , = पाइथन में है? matplotlib सेपाइथन में = = मतलब क्या है?

उदाहरण:

plot1, = ax01.plot(t,yp1,'b-') 
+0

@ArnabDatta नहीं फिर 'नहीं कर सकते; वह 2-टुपल होगा। आप '(plot1,) = ...' या '[plot1] = ... 'लिख सकते हैं। – Veedrac

उत्तर

43

यह टपल unpacking का एक रूप है। कोष्ठक के साथ:

(plot1,) = ax01.plot(t,yp1,'b-') 

ax01.plot() एक टपल एक तत्व से युक्त देता है, और इस तत्व plot1 को सौंपा गया है। उस अल्पविराम (और संभवतः कोष्ठक) के बिना, plot1 पूरे ट्यूपल को असाइन किया गया होगा। निम्न उदाहरण में a और b के बीच अंतर का निरीक्षण करें:

>>> def foo(): 
...  return (1,) 
... 
>>> (a,) = foo() 
>>> b = foo() 
>>> a 
1 
>>> b 
(1,) 

आप दोनों (a,) और (1,) में कोष्ठकों को छोड़ कर सकते हैं, मैं उन्हें स्पष्टता के लिए छोड़ दिया है।

+0

यह संस्करण विशिष्ट प्रतीत होता है। सटीक होने के लिए आप उल्लेख कर सकते हैं कि यह संभव नहीं है उदा। पायथन 2.7 ("ValueError: अनपैक करने के लिए बहुत अधिक मूल्य")। इसके अलावा: मैं क्यों नहीं कर सकता, = = (1,2,3,4) '? –

+3

@ थॉमसवेलर 1) उपरोक्त उदाहरण पायथन 2.7 में काम करता है, उस त्रुटि का अर्थ है कि आप जिस टपल को अनपैक करने का प्रयास कर रहे हैं वह lhs में प्रदान किए गए चर की संख्या से बड़ा है। 2) आप इसलिए नहीं कर सकते क्योंकि यह वैध वाक्यविन्यास नहीं है। यदि आप केवल पहला तत्व रखना चाहते हैं, तो 'x, _, _, _ = (1,2,3,4) 'करें, जहां' _' एक नियमित चर नाम है, पारंपरिक रूप से _ "डॉन सिग्नल करने के लिए उपयोग किया जाता है इस मूल्य के बारे में परवाह नहीं है "_। वैसे भी, मुझे लगता है कि इस मामले में 'x = foo [0]' स्पष्ट है। –

+1

@StefanoSanfilippo पायथन 3 में आप ['x, * _ = (1,2,3,4)'] (https: //asmeurer.github कर सकते हैं।कब/python3-प्रस्तुति/slides.html # 8) – Pureferret

2

एक चर के बाद , जोड़ना इसे एक तत्व के साथ एक टुपल में स्थानांतरित करता है। इस ट्यूपल को तब मान दिया जाता है (= ऑपरेटर के साथ) ax01.plot(t,yp1,'b-') से लौटाया गया।

17

पायथन आपको असाइनमेंट के बाईं ओर टुपल्स लगाने की अनुमति देता है। प्रश्न में कोड इसका एक उदाहरण है, ऐसा लगता है कि यह ऑपरेटर का एक विशेष मामला है, लेकिन यह वास्तव में यहां एक मामला टुपल असाइनमेंट है। कुछ उदाहरणों में मदद कर सकता है:

a, b = (1, 2) 

जो आप a = 1 और b = 2 देता है।

अब एक तत्व ट्यूपल की अवधारणा भी है।

x = (3,) 

आप x = (3,) जो एक तत्व के साथ एक टपल है देता है, वाक्य रचना थोड़ा अजीब लग रहा है लेकिन अजगर तो यह इस बात के लिए अनुगामी अल्पविराम है सादा कोष्टक से अलग करने की जरूरत है (उदाहरण के लिए z=(4) z पूर्णांक मान हो बनाता है 4, एक tuple नहीं)। तुम अब तो उस तत्व को निकालने के लिए चाहते हैं तो आप की तरह है कि विचाराधीन है कुछ का उपयोग करना चाहते हैं:

y, = x 

अब y 3. नोट है कि यह सिर्फ टपल काम यहाँ है, वाक्य रचना बस थोड़ा अजीब प्रतीत होता है क्योंकि यह लम्बाई का टुपल है।

एक उदाहरण के लिए इस स्क्रिप्ट देखें: http://ideone.com/qroNcx

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