पायथन में सूची के तत्वों को यूनिक ID निर्दिष्ट करना (क्रम संरक्षित)
1. enumerate() और OrderedDict.fromkeys() का उपयोग
OrderedDict.fromkeys डुप्लिकेट हटाकर क्रम बनाए रखता है, फिर enumerate से ID दें।
from collections import OrderedDict
Alist = ['Mon', 'Tue', 'Wed', 'Mon', 5, 3, 3]
id_map = {v: k for k, v in enumerate(OrderedDict.fromkeys(Alist))}
list_ids = [id_map[n] for n in Alist]
print("IDs:", list_ids)
आउटपुट: [0, 1, 2, 0, 3, 4, 4]
2. defaultdict और लैम्ब्डा का उपयोग
defaultdict(lambda: len(d_dict)) नए तत्व के लिए स्वतः नया ID जनरेट करता है।
from collections import defaultdict
Alist = ['Mon', 'Tue', 'Wed', 'Mon', 5, 3, 3]
d_dict = defaultdict(lambda: len(d_dict))
list_ids = [d_dict[n] for n in Alist]
print("IDs:", list_ids)
आउटपुट: [0, 1, 2, 0, 3, 4, 4]
सारांश
दोनों विधियां पहली उपस्थिति के क्रम में ID निर्दिष्ट करती हैं। defaultdict विधि अधिक संक्षिप्त और "जादुई" है।