पायथनमध्ये, ट्यूपल किंवा सूचीचे घटक विस्तृत केले जाऊ शकतात आणि एकाधिक व्हेरिएबल्सना नियुक्त केले जाऊ शकतात. याला अनुक्रम अनपॅकिंग किंवा अनपॅक केलेले असाइनमेंट म्हणतात.
खालील तपशील येथे वर्णन केले आहेत.
- ट्यूपल्स आणि सूचीच्या मूलभूत गोष्टी अनपॅक करणे
- नेस्टेड टपल्स, अनपॅक केलेली सूची
- अंडरस्कोअरसह अनपॅक करणे:
_
- तारकांसह अनपॅक करत आहे:
*
फंक्शन आर्ग्युमेंट्स म्हणून ट्युपल्स, याद्या आणि शब्दकोश विस्तृत करण्यासाठी आणि पास करण्यासाठी तारका वापरण्याबद्दल माहितीसाठी खालील लेख पहा.
- संबंधित:Python मध्ये फंक्शन आर्ग्युमेंट म्हणून याद्या, ट्यूपल्स आणि डिक्शनरी विस्तृत करणे आणि पास करणे
ट्यूपल्स आणि सूचीच्या मूलभूत गोष्टी अनपॅक करणे
स्वल्पविरामाने विभक्त करून डावीकडे व्हेरिएबल्स लिहिल्या जातात तेव्हा, प्रत्येक व्हेरिएबलला उजव्या बाजूला टपल किंवा सूचीचा एक घटक नियुक्त केला जातो. हे ट्यूपल आणि सूची दोन्हीसाठी समान आहे (खालील उदाहरणे टपल स्वरूपात लिहिलेली आहेत).
t = (0, 1, 2)
a, b, c = t
print(a)
print(b)
print(c)
# 0
# 1
# 2
l = [0, 1, 2]
a, b, c = l
print(a)
print(b)
print(c)
# 0
# 1
# 2
लक्षात घ्या की ट्युपल्स गोल कंस वगळू शकतात, याचा वापर खालीलप्रमाणे एकाच ओळीवर अनेक व्हेरिएबल्सना एकाधिक मूल्ये नियुक्त करण्यासाठी केला जाऊ शकतो.
a, b = 0, 1
print(a)
print(b)
# 0
# 1
व्हेरिएबल्सची संख्या घटकांच्या संख्येशी जुळत नसल्यास, एक त्रुटी येते.
# a, b = t
# ValueError: too many values to unpack (expected 2)
# a, b, c, d = t
# ValueError: not enough values to unpack (expected 4, got 3)
जर व्हेरिएबल्सची संख्या घटकांच्या संख्येपेक्षा कमी असेल, तर उर्वरित घटक व्हेरिएबलच्या नावाला तारांकन जोडून सूची म्हणून नियुक्त केले जाऊ शकतात (खाली पहा).
नेस्टेड टपल्स, अनपॅक केलेली सूची
नेस्टेड ट्यूपल्स आणि याद्या देखील अनपॅक केल्या जाऊ शकतात. तुम्हाला सामग्री देखील अनपॅक करायची असल्यास, खालीलपैकी एकामध्ये व्हेरिएबल बंद करा
()
[]
t = (0, 1, (2, 3, 4))
a, b, c = t
print(a)
print(b)
print(c)
# 0
# 1
# (2, 3, 4)
print(type(c))
# <class 'tuple'>
a, b, (c, d, e) = t
print(a)
print(b)
print(c)
print(d)
print(e)
# 0
# 1
# 2
# 3
# 4
_underscore_ सह अनपॅक केलेले.
पायथनमध्ये, केवळ अनपॅक केलेले नाही, आवश्यक नसलेली मूल्ये पारंपारिकपणे अंडरस्कोर (अंडरस्कोर) _ ला दिली जातात. विशेष व्याकरणात्मक अर्थ नाही; ते फक्त _ नावाच्या व्हेरिएबलला नियुक्त केले आहेत.
t = (0, 1, 2)
a, b, _ = t
print(a)
print(b)
print(_)
# 0
# 1
# 2
तारकांसह अनपॅक करत आहे
जर व्हेरिएबल्सची संख्या घटकांच्या संख्येपेक्षा कमी असेल, तर व्हेरिएबलच्या नावातील तारांकनामुळे घटकांना सूची म्हणून एकत्र नियुक्त केले जाईल.
हा सिंटॅक्स पायथन 3 पासून लागू केला गेला आहे आणि पायथन 2 मध्ये उपलब्ध नाही.
घटक सुरुवातीपासून आणि शेवटपासून व्हेरिएबल्सना तारकाशिवाय नियुक्त केले जातात आणि उर्वरित घटक तारकासह व्हेरिएबल्सना सूची म्हणून नियुक्त केले जातात.
t = (0, 1, 2, 3, 4)
a, b, *c = t
print(a)
print(b)
print(c)
# 0
# 1
# [2, 3, 4]
print(type(c))
# <class 'list'>
a, *b, c = t
print(a)
print(b)
print(c)
# 0
# [1, 2, 3]
# 4
*a, b, c = t
print(a)
print(b)
print(c)
# [0, 1, 2]
# 3
# 4
उदाहरणार्थ, जर तुम्हाला ट्यूपलचे फक्त पहिले दोन घटक किंवा व्हेरिएबलची सूची द्यावयाची असेल, तर तुम्ही वरील अंडरस्कोर आवश्यक नसलेल्या भागांसाठी वापरू शकता.
a, b, *_ = t
print(a)
print(b)
print(_)
# 0
# 1
# [2, 3, 4]
तेच खालीलप्रमाणे लिहिता येईल
a, b = t[0], t[1]
print(a)
print(b)
# 0
# 1
फक्त एक तारका जोडली जाऊ शकते. तारांकनासह अनेक व्हेरिएबल्स चिन्हांकित असल्यास, सिंटॅक्स एरर त्रुटी उद्भवेल कारण प्रत्येक व्हेरिएबलला किती घटक नियुक्त केले आहेत हे निर्धारित करणे शक्य नाही.
# *a, b, *c = t
# SyntaxError: two starred expressions in assignment
लक्षात ठेवा की तारांकित चिन्हांकित व्हेरिएबलला नियुक्त केलेला एक घटक देखील सूची म्हणून नियुक्त केला आहे.
t = (0, 1, 2)
a, b, *c = t
print(a)
print(b)
print(c)
# 0
# 1
# [2]
print(type(c))
# <class 'list'>
कोणतेही अतिरिक्त घटक नसल्यास, रिक्त यादी नियुक्त केली जाते.
a, b, c, *d = t
print(a)
print(b)
print(c)
print(d)
# 0
# 1
# 2
# []