পাইথন অভিধান ব্যবহার করার সময় আমাদের অভিধানের প্রতিটি উপাদানকে স্বতন্ত্রভাবে সনাক্ত করতে হতে পারে। এর জন্য আমাদের অভিধানের প্রতিটি উপাদানের জন্য অনন্য আইডি বরাদ্দ করতে হবে। এই নিবন্ধে আমরা দেখতে পাব কিভাবে একই অনন্য আইডি একটি উপাদানের জন্য বরাদ্দ করা যায় যদি এটি একটি পাইথন অভিধানে পুনরাবৃত্তি হয়।
enumerate() এবং OrderedDict.fromkeys() সহ
গণনা ফাংশন অভিধানের প্রতিটি উপাদানে একটি কাউন্টার যোগ করে একটি প্রদত্ত অভিধানকে প্রসারিত করে। তারপরে আমরা OrderedDict.fromkeys() প্রয়োগ করি যা অভিধান থেকে কাউন্টারের একই মান বের করবে তাই আইডিগুলির ডুপ্লিকেট মানগুলি বাদ দেবে৷
উদাহরণ
from collections import OrderedDict Alist = ['Mon','Tue','Wed','Mon',5,3,3] print("The given list : ",Alist) # Assigning ids to values list_ids = [{v: k for k, v in enumerate( OrderedDict.fromkeys(Alist))} [n] for n in Alist] # The result print("The list of ids : ",list_ids)
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
The given list : ['Mon', 'Tue', 'Wed', 'Mon', 5, 3, 3] The list of ids : [0, 1, 2, 0, 3, 4, 4]
সংগ্রহ থেকে OrderedDict ব্যবহার করা
এই পদ্ধতিতে আমরা ডিফল্টডিক্ট ফাংশন ব্যবহার করি যা শুধুমাত্র নতুন উপাদানগুলিতে একটি নতুন কী বরাদ্দ করবে। তারপরে আমরা ল্যাম্বডা ফাংশন ব্যবহার করি অনন্য আইডির নতুন তালিকা লুপ করতে।
উদাহরণ
from collections import defaultdict # Given List Alist = ['Mon','Tue','Wed','Mon',5,3,3] print("The given list : ",Alist) # Assigning ids to values d_dict = defaultdict(lambda: len(d_dict)) list_ids= [d_dict[n] for n in Alist] # Print ids of the dictionary print("The list of ids : ", list_ids)
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
The given list : ['Mon', 'Tue', 'Wed', 'Mon', 5, 3, 3] The list of ids : [0, 1, 2, 0, 3, 4, 4]