2012-03-02 19 views
26

अगर मैं (1,2,3,4) के रूप में एक टपल इस तरह है और मैं 1 और 3 चर ए और बी के लिए प्रदान करना चाहते हैं मैं स्पष्ट रूप से कह सकते हैंएक अजगर टपल का हिस्सा पर ध्यान न दें

myTuple = (1,2,3) 
a = my_tuple[0] 
b = myTuple[2] 

या

(a,_,b,_) = myTuple 
की तरह कुछ

क्या कोई तरीका है कि मैं मूल्यों को अनपैक कर सकता हूं, लेकिन उनमें से एक या अधिक को अनदेखा कर सकता हूं?

+2

'एक, _, ख = myTuple' एक बहुत आम मुहावरा है। ईमानदार होने के लिए, मुझे इसके साथ बहुत गलत नहीं दिख रहा है। – NPE

+0

'_ == 2' होने में क्या समस्या है? कोड में बाद में कोई भी '_' का उपयोग करने वाला नहीं है। –

+1

क्या होगा यदि मैं टुपल के दो हिस्सों को अनदेखा करना चाहता हूं? मैं teh प्रश्न –

उत्तर

10

आपका समाधान मेरी राय में ठीक है। क्या तुम सच में बताए _ के साथ एक समस्या है तो आप अनुक्रमित की सूची निर्धारित करने और कर सकता है:

a = (1, 2, 3, 4, 5) 
idxs = [0, 3, 4] 
a1, b1, c1 = (a[i] for i in idxs) 
35

मैं व्यक्तिगत रूप से लिखना होगा:

a, _, b = myTuple 

यह एक बहुत आम मुहावरा है, इसलिए यह व्यापक रूप से समझा है। मुझे सिंटैक्स क्रिस्टल स्पष्ट लगता है।

+4

मुझे यह नोट करना है कि पाइथन दुभाषिया '_' में अंतिम अभिव्यक्ति के परिणाम को असाइन किया गया है (इसलिए यदि आप' हाय 'टाइप करते हैं और एंटर दबाते हैं तो' _ है 'hi'') जब तक आप कुछ नहीं करते इस तरह आप इसे एक मूल्य आवंटित करते हैं, तो यह पहले कभी काम नहीं करेगा जैसा कि पहले किया गया था। – 2rs2ts

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