2013-03-24 6 views
8

मैं एक समारोह है मान लीजिए:पायथन में बहु-आउटपुट फ़ंक्शन के आउटपुट को अनदेखा कैसे करें?

def f(): 
    ... 
    ... 
    ... 
    return a,b,c 

और मैं केवल फ़ंक्शन के परिणाम में ख प्राप्त करना चाहते हैं। मुझे किस असाइनमेंट का उपयोग करना है?

धन्यवाद।

उत्तर

21

आप कुछ डमी चर में लौटे टपल खोल कर सकते हैं:

_, keep_this, _ = f() 

यह _, बस कुछ स्पष्ट रूप से अप्रयुक्त होने की जरूरत नहीं है।

(इंटरैक्टिव दुभाषिया में एक डमी नाम के रूप में _ का उपयोग न करें, इसके अंतिम परिणाम के आयोजन के लिए प्रयोग किया जाता है।)

 

वैकल्पिक रूप से, सूचकांक लौटे टपल:

keep_this = f()[1] 
+1

कुछ सेकंड से यह करने के लिए मुझे मारो! अरे! – feralin

+0

मुझे डमी चर के लिए कोई दस्तावेज नहीं मिल रहा है। कोई मदद करता है? – Cupitor

+1

@ नाजी मूल रूप से, कोड क्या करता है ट्यूपल के तीन हिस्सों को तीन चरों को आवंटित करता है। एक एकल अंडरस्कोर एक वैध चर नाम है, और इसे एक विनाशकारी असाइनमेंट में कई बार असाइन किया जा सकता है। तो जब वह असाइनमेंट पूरा हो जाएगा, तो आपके पास दो चर होंगे: keep_this, जो tuple में मध्य मान के बराबर है, और _, जो (यदि मैं सही हूं) tuple में अंतिम मान के बराबर है। आपको और जानने के लिए विनाशकारी कार्य को देखना चाहिए। – feralin

1

return a,b,c लाइन के साथ आप क्या कर रहे हैं tuple बना रहा है और फिर इसे फ़ंक्शन से वापस कर रहा है। तो आप परिणाम से इच्छित मूल्यों को प्राप्त करने के लिए ट्यूपल डिसनस्ट्रक्शन का उपयोग कर सकते हैं। उदाहरण:

def f(x): 
    return x, x + 1, x + 2 
_, b, _ = f(0) 
print(b) # prints "1" 
+0

एक साइड सवाल के रूप में, कोड एक पंक्ति पर क्यों है? मैंने इसे कई लाइनों पर दर्ज किया ... – feralin

+0

आप किसी भी तरह से [SOH] (http://en.wikipedia.org/wiki/Start-of-Header#SOH) (0x01, CTRL-A) वर्ण डालने में कामयाब रहे । –

+0

मुझे यकीन नहीं है कि मैं ऐसा करने में कैसे कामयाब रहा! – feralin

3
def f(): 
    return 1,2,3 
यहाँ

, f() एक टपल देता (1,2,3) ताकि आप कुछ इस तरह कर सकते हैं:

a = f()[0] 
print a 
1 

a = f()[1] 
print a 
2 

a = f()[2] 
print a 
3 
संबंधित मुद्दे