NamedTuple संग्रह मॉड्यूल के तहत एक और वर्ग है। शब्दकोश प्रकार की वस्तुओं की तरह, इसमें कुंजियाँ होती हैं और जिन्हें कुछ मानों के लिए मैप किया जाता है। इस मामले में हम कुंजी और अनुक्रमणिका का उपयोग करके तत्वों तक पहुंच सकते हैं।
इसका उपयोग करने के लिए सबसे पहले हमें इसे संग्रह मानक पुस्तकालय मॉड्यूल आयात करने की आवश्यकता है।
import collections
इस सेक्शन में हम NamedTuple क्लास के कुछ फंक्शन देखेंगे।
NamedTuple के एक्सेस करने के तरीके
NamedTuple से, हम इंडेक्स, कीज़ और getattr () मेथड का उपयोग करके वैल्यूज़ को एक्सेस कर सकते हैं। NamedTuple के विशेषता मानों का आदेश दिया जाता है। इसलिए हम इंडेक्स का उपयोग करके उन तक पहुंच सकते हैं।
NamedTuple फ़ील्ड नामों को विशेषताओं के रूप में परिवर्तित करता है। तो getattr() का उपयोग करके उस विशेषता से डेटा प्राप्त करना संभव है।
उदाहरण कोड
import collections as col #create employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Add two employees e1 = Employee('Asim', 'Delhi', '25000') e2 = Employee('Bibhas', 'Kolkata', '30000') #Access the elements using index print('The name and salary of e1: ' + e1[0] + ' and ' + e1[2]) #Access the elements using attribute name print('The name and salary of e2: ' + e2.name + ' and ' + e2.salary) #Access the elements using getattr() print('The City of e1 and e2: ' + getattr(e1, 'city') + ' and ' + getattr(e2, 'city'))
आउटपुट
The name and salary of e1: Asim and 25000 The name and salary of e2: Bibhas and 30000 The City of e1 and e2: Delhi and Kolkata
NamedTuple की रूपांतरण प्रक्रिया
अन्य संग्रहों को NamedTuple में बदलने की कुछ विधियाँ हैं। _मेक () विधि का उपयोग एक पुनरावृत्त वस्तु जैसे सूची, टपल, आदि को नामांकित वस्तु में बदलने के लिए किया जा सकता है।
हम एक डिक्शनरी टाइप ऑब्जेक्ट को NamedTuple ऑब्जेक्ट में भी बदल सकते हैं। इस रूपांतरण के लिए, हमें ** ऑपरेटर की आवश्यकता है।
NamedTuple कुंजियों के साथ मान को OrderedDict टाइप ऑब्जेक्ट के रूप में वापस कर सकता है। इसे OrderedDict बनाने के लिए, हमें _asdict() विधि का उपयोग करना होगा।
उदाहरण कोड
import collections as col #create employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #List of values to Employee my_list = ['Asim', 'Delhi', '25000'] e1 = Employee._make(my_list) print(e1) #Dict to convert Employee my_dict = {'name':'Bibhas', 'city' : 'Kolkata', 'salary' : '30000'} e2 = Employee(**my_dict) print(e2) #Show the named tuple as dictionary emp_dict = e1._asdict() print(emp_dict)के रूप में दिखाएं
आउटपुट
Employee(name='Asim', city='Delhi', salary='25000') Employee(name='Bibhas', city='Kolkata', salary='30000') OrderedDict([('name', 'Asim'), ('city', 'Delhi'), ('salary', '25000')])
NamedTuple पर कुछ अतिरिक्त ऑपरेशन
कुछ अन्य विधियाँ हैं जैसे _fields() और _replace()। _fields() विधि का उपयोग करके हम जांच सकते हैं कि NamedTuple के विभिन्न क्षेत्र क्या हैं। _replace() विधि का उपयोग किसी अन्य मान के मान को बदलने के लिए किया जाता है।
उदाहरण कोड
import collections as col #create employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Add an employees e1 = Employee('Asim', 'Delhi', '25000') print(e1) print('The fields of Employee: ' + str(e1._fields)) #replace the city of employee e1 e1 = e1._replace(city='Mumbai') print(e1)
आउटपुट
Employee(name='Asim', city='Delhi', salary='25000') The fields of Employee: ('name', 'city', 'salary') Employee(name='Asim', city='Mumbai', salary='25000')