पाइथनमा, ट्यूपल वा सूचीका तत्वहरू विस्तार गर्न सकिन्छ र धेरै चरहरूलाई तोक्न सकिन्छ। यसलाई अनुक्रम अनप्याकिंग वा अनप्याक गरिएको असाइनमेन्ट भनिन्छ।
निम्न विवरणहरू यहाँ वर्णन गरिएको छ।
- टुपल र सूचीहरूको आधारभूत कुराहरू अनप्याक गर्दै
- नेस्टेड टपल्स, अनप्याक सूचीहरू
- अन्डरस्कोरहरूसँग अनप्याक गर्दै:
_ - ताराहरू सहित अनप्याक गर्दै:
*
फंक्शन आर्गुमेन्टको रूपमा टुपलहरू, सूचीहरू, र शब्दकोशहरू विस्तार गर्न र पास गर्न ताराहरू प्रयोग गर्ने ’bout जानकारीको लागि निम्न लेख हेर्नुहोस्।
टुपल र सूचीहरूको आधारभूत कुराहरू अनप्याक गर्दै
जब चरहरू बाँया-हात तिर लेखिन्छ, अल्पविरामद्वारा छुट्याइन्छ, प्रत्येक चरलाई दायाँ-हात तिरको टुपल वा सूचीको तत्व तोकिन्छ। यो टपल र सूची दुवैको लागि समान छ (निम्न उदाहरणहरू टपल फारममा लेखिएका छन्)।
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
उदाहरण को लागी, यदि तपाइँ एक चर मा एक tuple वा सूची को पहिलो दुई तत्वहरु मात्र असाइन गर्न चाहानुहुन्छ, तपाईले माथिको अन्डरस्कोर को भागहरु को लागी प्रयोग गर्न सक्नुहुन्छ जुन आवश्यक छैन।
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
एउटा मात्र तारा जोड्न सकिन्छ। यदि त्यहाँ एस्टेरिस्कको साथ चिन्ह लगाइएका बहु चरहरू छन् भने, सिन्ट्याक्स त्रुटि त्रुटिको परिणाम हुनेछ ’cause प्रत्येक चरमा कतिवटा तत्वहरू तोकिएका छन् भनेर निर्धारण गर्न सम्भव छैन।
# *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
# []