मुख्य सामग्री पर जाएं
मॉड्यूल 3 · पाठ 2 का 4पाठ्यक्रम में 10/36~10 min
मॉड्यूल पाठ (2/4)

टुपल्स और अनपैकिंग

एक टुपल एक क्रमबद्ध और अपरिवर्तनीय अनुक्रम है: एक बार बनाया गया, तो आप ऐसा कर सकते हैं अब इसके तत्व नहीं बदलते। यह कोष्ठक के साथ लिखा गया है (भले ही जो वास्तव में इसे परिभाषित करता है वह अल्पविराम है)।

एक टुपल बनाना

Python
vuota = ()
una = (42,)             # ATTENZIONE: senza virgola, (42) è solo 42 fra parentesi
coords = (10, 20)
mista = ("Ada", 36, True)

इंडेक्स और स्लाइसिंग द्वारा पहुंच बिल्कुल सूचियों की तरह काम करती है: coords[0], coords[-1], mista[:2].

सूची के स्थान पर टुपल का उपयोग कब करें

  • जब मान एक निश्चित संग्रह का प्रतिनिधित्व करता है तो उसे बदलना नहीं चाहिए (निर्देशांक, दिनांक (year, month, day), संस्करण (1, 2, 3))।
  • जब आपको मान को शब्दकोश कुंजी या एक तत्व के रूप में उपयोग करने की आवश्यकता होती है set: केवल अपरिवर्तनीय (हैश करने योग्य) वस्तुओं का उपयोग किया जा सकता है।
  • जब आप कोड के पाठक को संकेत देना चाहते हैं कि वह मान है "जमे हुए"।

अनपैकिंग: वह सुविधा जो आपके पायथन लिखने के तरीके को बदल देती है

Python
nome, anni = ("Ada", 36)
nome   # 'Ada'
anni   # 36

यह कोष्ठक के बिना भी काम करता है (यह अल्पविराम है जो परिभाषित करता है टपल):

Python
x, y = 10, 20

और यह अस्थायी चर के बिना स्वैपिंग, एक शुद्ध पायथन की अनुमति देता है मुहावरा:

Python
a, b = 1, 2
a, b = b, a
a, b   # (2, 1)

* (बाकी) के साथ अनपैकिंग

जब आप "पहला और बाकी" या "पहला, आखिरी, मध्य":

Python
primo, *resto = [1, 2, 3, 4, 5]
primo   # 1
resto   # [2, 3, 4, 5]

primo, *centro, ultimo = [1, 2, 3, 4, 5]
centro  # [2, 3, 4]

इसे तारांकित असाइनमेंट कहा जाता है: तारा वह सब कुछ एकत्र करता है एक सूची में रहता है.

एकल-तत्व टपल ट्रैप

(42) एक टुपल नहीं है, यह कोष्ठक के अंदर की संख्या 42 है। एक बनाने के लिए एकल-तत्व टपल आपको अल्पविराम की आवश्यकता है: (42,)। इसके बिना, कोई भी ऑपरेशन भ्रमित करने वाले तरीके से विफल हो जाता है।

Python
x = (42)
type(x)   # <class 'int'>
x = (42,)
type(x)   # <class 'tuple'>

एकल-तत्व टुपल्स

केवल एक तत्व युक्त टुपल बनाने के लिए, अकेले कोष्ठक पर्याप्त नहीं हैं: आपको एक अनुगामी अल्पविराम सम्मिलित करना होगा, उदाहरण के लिए t = (42,)। अल्पविराम के बिना, पायथन कोष्ठक को सरल गणितीय समूह के रूप में मानता है, जिससे एक सादा पूर्णांक 42 बनता है।

इसे अजमाएं

व्यायाम#python.m3.l2.e1
प्रयास: 0लोड हो रहा है...

`ए = 1` और `बी = 2` को देखते हुए, उनके मानों को एक पंक्ति में बदलें (ट्यूपल अनपैकिंग) और ट्यूपल (ए, बी) का मूल्यांकन करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

ए, बी = बी, ए

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#python.m3.l2.e2
प्रयास: 0लोड हो रहा है...

सूची `वोटी = [7, 5, 8, 6, 9]` से, पहले ग्रेड को `प्राइमो` में, अंतिम को `अल्टीमो` में और शेष को `सेंट्रो` में निकालने के लिए अनपैकिंग का उपयोग करें। `(प्राइमो, सेंट्रो, अल्टिमो)` का मूल्यांकन करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

प्राइमो, *सेंट्रो, अंतिम = वोट → प्राइमो=7, सेंट्रो=[5,8,6], अंतिम=9।

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#python.m3.l2.e3
प्रयास: 0लोड हो रहा है...

Given the tuple `point = (4, 5, 6)`, use unpacking to assign the three values to the variables `x`, `y`, `z` respectively. Then, calculate the sum of `x`, `y`, and `z` and store it in `coord_sum`. Finally, evaluate `coord_sum`.

संपादक लोड हो रहा है...
संकेत दिखाएँ

एक ही कथन में तीन निर्देशांक निकालने के लिए x, y, z = बिंदु का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है