एक शब्दकोश में तत्वों को जोड़ना और पायथन में शब्दकोशों को जोड़ना

व्यापार

यह खंड बताता है कि एक शब्दकोश में नए तत्वों को कैसे जोड़ा जाए (तानाशाही प्रकार की वस्तु) या पायथन में किसी मौजूदा तत्व के मूल्य को अपडेट करें। कई शब्दकोशों को संक्षिप्त करना (शामिल करना, विलय करना) भी संभव है।

  • कुंजी को निर्दिष्ट करके शब्दकोश में तत्वों को जोड़ें और अपडेट करें।
  • कई शब्दकोशों के संबंध (विलय): अद्यतन (), | ऑपरेटर; = ऑपरेटर
  • कई तत्वों को जोड़ें या अपडेट करें: अपडेट (); = = ऑपरेटर

कुंजी को निर्दिष्ट करके शब्दकोश में तत्वों को जोड़ें और अपडेट करें।

आप निम्नलिखित तरीके से शब्दकोश तत्वों को जोड़ / अपडेट कर सकते हैं।

शब्दकोश वस्तु [कुंजी] = मूल्य

जब एक गैर-मौजूद कुंजी निर्दिष्ट की जाती है, तो एक नया तत्व जोड़ा जाता है, और जब एक मौजूदा कुंजी निर्दिष्ट की जाती है, तो मौजूदा मान अपडेट किया जाता है (अधिलेखित)।

d = {'k1': 1, 'k2': 2}

d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}

यदि आप मौजूद कुंजी के मान को अपडेट नहीं करना चाहते हैं, तो सेटडफॉल्ट () विधि का उपयोग करें।

कॉनकैटनेट (मर्ज) कई शब्दकोश: अपडेट (), | ऑपरेटर; = ऑपरेटर

update()

यदि किसी अन्य शब्दकोश ऑब्जेक्ट को शब्दकोश ऑब्जेक्ट के विधि अपडेट () के तर्क के रूप में निर्दिष्ट किया गया है, तो इसके सभी तत्व जोड़े जाएंगे।

यदि कुंजी किसी मौजूदा कुंजी के साथ ओवरलैप होती है, तो यह तर्क में निर्दिष्ट शब्दकोश के मूल्य के साथ ओवरराइट किया जाएगा।

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

यह अद्यतन () तर्क में कई शब्दकोशों को निर्दिष्ट करने के लिए एक त्रुटि है।

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2

जैसा कि बाद में समझाया गया है, अपडेट () कीवर्ड तर्क (कुंजी = मान) के रूप में नए तत्व जोड़ सकते हैं, इसलिए केवल शब्दकोश में ** जोड़ें और प्रत्येक तत्व को कीवर्ड तर्क के रूप में विस्तारित करें और इसे पास करें।

d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

पिछले उदाहरणों की तरह, अपडेट का उपयोग करते हुए () मूल शब्दकोश ऑब्जेक्ट को अपडेट करेगा।

यदि आप कई शब्दकोशों को विलय करके एक नया शब्दकोश बनाना चाहते हैं, तो {** d1, ** d2} (पायथन 3.5 से) या तानाशाही (** d1, ** d2) का उपयोग करें।

पायथन 3.9 और बाद में, का उपयोग करके एक नया शब्दकोश बनाना भी संभव है ऑपरेटर ने अगला वर्णन किया।

| ऑपरेटर; = ऑपरेटर (पायथन 3.9 और बाद में)

पायथन 3.9 के बाद से, दो शब्दकोशों का विलय संभव है | ऑपरेटर। जब दो शब्दकोशों में एक ही कुंजी होती है, तो दाईं ओर के मूल्य में प्राथमिकता होती है।

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

print(d1 | d2)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

print(d2 | d1)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}

| ऑपरेटरों की एक श्रृंखला का उपयोग करके कई शब्दकोशों को संयोजित करना भी संभव है।

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

print(d1 | d2 | d3)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

+ अपडेट () के साथ, बाईं ओर ऑब्जेक्ट अपडेट किया गया है।

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

कई तत्वों को जोड़ें या अपडेट करें: अपडेट (); = = ऑपरेटर

update()

जब कीवर्ड तर्क कुंजी = अद्यतन () विधि में मान निर्दिष्ट किया जाता है, तो कुंजी कुंजी और मूल्य मान जोड़ा जाएगा। यदि कुंजी किसी मौजूदा कुंजी के साथ ओवरलैप होती है, तो इसे तर्क में निर्दिष्ट मूल्य के साथ ओवरराइट किया जाएगा।

d = {'k1': 1, 'k2': 2}

d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

अद्यतन () विधि के तर्क के रूप में (कुंजी, मूल्य) की एक सूची निर्दिष्ट करना संभव है। यदि कुंजी किसी मौजूदा कुंजी के साथ ओवरलैप होती है, तो इसे तर्क के रूप में निर्दिष्ट मूल्य के साथ ओवरराइट किया जाएगा।

d = {'k1': 1, 'k2': 2}

d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

ज़िप () फ़ंक्शन के संयोजन में, तत्वों को कुंजी की सूची और मूल्यों की सूची से जोड़ा जा सकता है।

d = {'k1': 1, 'k2': 2}

keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]

d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

| = ऑपरेटर (अजगर 3.9 और बाद में)

के साथ | = ऑपरेटर, दाईं ओर (कुंजी, मान) की एक सूची निर्दिष्ट की जा सकती है।

d = {'k1': 1, 'k2': 2}

d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

ध्यान दें कि एक सूची के साथ निर्दिष्ट करना | ऑपरेटर एक त्रुटि का परिणाम देगा। केवल शब्दकोश-से-शब्दकोश संचालन समर्थित हैं।

# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'
Copied title and URL