पायथन डिक्शनरी का उपयोग करते समय हमें डिक्शनरी के प्रत्येक तत्व को विशिष्ट रूप से पहचानने की आवश्यकता हो सकती है। उसके लिए हमें डिक्शनरी के प्रत्येक तत्व के लिए अद्वितीय आईडी निर्दिष्ट करनी होगी। इस लेख में हम देखेंगे कि अगर किसी एलीमेंट को पायथन डिक्शनरी में दोहराया जाता है तो उसी यूनिक आईडी को कैसे असाइन किया जाए।
एन्यूमरेट() और 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]