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-এ রূপান্তর করার কিছু পদ্ধতি রয়েছে। _make() পদ্ধতিটি একটি পুনরাবৃত্তিযোগ্য বস্তু যেমন তালিকা, টিপল ইত্যাদিকে NamedTuple অবজেক্টে রূপান্তর করতে ব্যবহার করা যেতে পারে।
আমরা একটি অভিধান টাইপ অবজেক্টকে NamedTuple অবজেক্টে রূপান্তর করতে পারি। এই রূপান্তরের জন্য, আমাদের প্রয়োজন ** অপারেটর৷
৷NamedTuple OrderedDict টাইপ অবজেক্ট হিসাবে কী সহ মান ফেরত দিতে পারে। এটিকে OrderedDict করতে, আমাদের _asdict() পদ্ধতি ব্যবহার করতে হবে।
উদাহরণ কোড
col#create কর্মচারী NamedTupleEmployee =col.namedtuple('Employee', ['name', 'city', 'salary']) হিসেবে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')