टपल से एक मान प्राप्त करना


152

क्या पायथन में एक ट्यूपल से भावों का उपयोग करके एक मान प्राप्त करने का एक तरीका है?

def tup():
  return (3, "hello")

i = 5 + tup()  # I want to add just the three

मैं जानता हूँ मैं यह कर सकता हूँ:

(j, _) = tup()
i = 5 + j

लेकिन इससे मेरे फंक्शन में कुछ दर्जन लाइनें जुड़ जाएंगी, जिससे इसकी लंबाई दोगुनी हो जाएगी।


1
यह _भी सिर्फ एक चर है। यह अक्सर इसका उपयोग मूल्य प्रदान करने के लिए किया जाता है जिसे त्याग दिया जा सकता है। लेकिन सैद्धांतिक रूप से आप मान सकते हैं_
जानकारी-स्क्रीन

जवाबों:


202

तुम लिख सकते हो

i = 5 + tup()[0]

ट्यूपल्स को सूचियों की तरह ही अनुक्रमित किया जा सकता है।

Tuples और सूचियों के बीच मुख्य अंतर यह है कि tuples अपरिवर्तनीय हैं - आप tuple के तत्वों को अलग-अलग मानों में सेट नहीं कर सकते हैं, या सूची से आप जैसे तत्व जोड़ या निकाल सकते हैं। लेकिन इसके अलावा, ज्यादातर स्थितियों में, वे बहुत अधिक काम करते हैं।


54

भविष्य में उत्तर की तलाश में किसी के लिए भी, मैं इस प्रश्न का अधिक स्पष्ट उत्तर देना चाहूंगा।

# for making a tuple
my_tuple = (89, 32)
my_tuple_with_more_values = (1, 2, 3, 4, 5, 6)

# to concatenate tuples
another_tuple = my_tuple + my_tuple_with_more_values
print(another_tuple)
# (89, 32, 1, 2, 3, 4, 5, 6)

# getting a value from a tuple is similar to a list
first_val = my_tuple[0]
second_val = my_tuple[1]

# if you have a function called my_tuple_fun that returns a tuple,
# you might want to do this
my_tuple_fun()[0]
my_tuple_fun()[1]

# or this
v1, v2 = my_tuple_fun()

आशा है कि यह उन चीजों को आगे बढ़ाएगा, जिनकी आवश्यकता है।


1
अद्यतन के लिए धन्यवाद। पूर्णता के लिए, आप टप्पर अनपैकिंग में अंडरस्कोर के उपयोग को 'डमी' प्लेसहोल्डर के रूप में जोड़ना चाह सकते हैं।
एमिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.