পাইথন ডিকশনারি ব্যবহার করার সময় আমাদের ডিকশনারির প্রতিটি উপাদানকে ইউনিকভাবে চিহ্নিত করার প্রয়োজন পড়তে পারে। তার জন্য ডিকশনারির প্রতিটি উপাদানে ইউনিক আইডি বরাদ্দ করতে হয়। এই আর্টিকেলে আমরা দেখব কীভাবে একটি পাইথন লিস্টে কোনো উপাদান যদি রিপিট হয় তবে সেটার জন্য একই ইউনিক আইডি বরাদ্দ করতে হয়।
enumerate() এবং OrderedDict.fromkeys() ব্যবহার করে
enumerate ফাংশন একটি দেওয়া ডিকশনারিকে প্রতিটি উপাদানে একটি কাউন্টার যোগ করে এক্সপ্যান্ড করে। তারপর আমরা OrderedDict.fromkeys() প্রয়োগ করি যা ডিকশনারি থেকে কাউন্টারের একই মান বের করে ডুপ্লিকেট আইডি মান দূর করে।
উদাহরণ
from collections import OrderedDict
Alist = ['Mon','Tue','Wed','Mon',5,3,3]
print("The given list : ",Alist)
list_ids = [{v: k for k, v in enumerate(OrderedDict.fromkeys(Alist))} [n] for n in Alist]
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]
collections থেকে OrderedDict ব্যবহার করে
এই পদ্ধতিতে আমরা defaultdict ফাংশন ব্যবহার করি যা শুধুমাত্র নতুন উপাদানগুলোর জন্য নতুন কী বরাদ্দ করে। তারপর ল্যাম্বডা ফাংশন ব্যবহার করে ইউনিক আইডির নতুন লিস্টের মাধ্যমে লুপ চালাই।
উদাহরণ
from collections import defaultdict
Alist = ['Mon','Tue','Wed','Mon',5,3,3]
print("The given list : ",Alist)
d_dict = defaultdict(lambda: len(d_dict))
list_ids = [d_dict[n] for n in Alist]
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]