मैंने निम्नलिखित कोड लिखा है:

collect2={}
dict1={}
dict2={}
dict1["id"]=1
dict1["title"]="Task 1"
dict1["is_completed"]="true"
dict2["id"]=2
dict2["title"]="Task 2"
dict2["is_completed"]="false"
collect2.update(dict1)
collect2.update(dict2)
print(collect2)

आउटपुट है

{'id': 2, 'title': 'Task 2', 'is_completed': 'false'}     

हालांकि, मैं उम्मीद करता हूं कि dict1 और dict2 की सामग्री संग्रह 2 में होगी।

क्या आप मेरी मदद कर सकते हैं जो मुझे बदलने की जरूरत है ताकि ऐसा हो?

आपके सहयोग के लिए धन्यवाद!

1
Python-Data-Science-Learner 26 फरवरी 2020, 00:47
2
क्या आप उस आउटपुट को साझा करके प्रश्न को स्पष्ट कर सकते हैं जिसकी आप अपेक्षा कर रहे हैं?
 – 
Mureinik
26 फरवरी 2020, 00:49
1
आप संग्रह 2 में dict1 और dict2 की सामग्री की अपेक्षा क्यों करेंगे। एक डिक्ट्स कुंजी अद्वितीय होनी चाहिए। तो आपके द्वारा dict1 के साथ अपडेट करने के बाद, कलेक्ट की कुंजी id है। जब आप dict2 के साथ अपडेट करते हैं। यह id नामक दूसरी कुंजी नहीं जोड़ सकता क्योंकि कुंजियां अद्वितीय होनी चाहिए, इसलिए यह कहती है कि ठीक है यह कुंजी पहले से मौजूद है मुझे इसकी सामग्री को अपडेट करने दें। ऐसा लगता है कि आपको वास्तव में जो चाहिए वह dicts की एक सूची है
 – 
Chris Doyle
26 फरवरी 2020, 00:52

2 जवाब

एक शब्दकोश एक मूल्य के साथ एक कुंजी की जोड़ी है। आपके पास समस्या यह है कि dict1 और dict2 में एक ही कुंजी है, और आपके पास दो अलग-अलग चीजों को इंगित करने वाली एक ही कुंजी नहीं हो सकती है - जब आप collect2[id] करते हैं तो आप क्या प्राप्त करने की उम्मीद करेंगे?

संभवतः आप दो शब्दकोशों को एक सूची में रखना चाह रहे हैं? तो आप collection = [dict1, dict2] कर सकते हैं और फिर collection[0]['id'] वापस 1 करने के लिए कर सकते हैं?

3
ba5h 26 फरवरी 2020, 00:52

@ ba5h ने सही दृष्टिकोण का सुझाव दिया है, लेकिन फिर से यदि आप एक शब्दकोश तक सीमित रखना चाहते हैं, तो आप नीचे दिए गए कोड का उपयोग कर सकते हैं

dict1={}
dict1["id"]=[1]
dict1["title"]=["Task 1"]
dict1["is_completed"]=["true"]

if "id" in dict1:
    dict1["id"].append(2)
if "title" in dict1:
    dict1["title"].append("Task 2")
if "is_completed" in dict1:
    dict1["is_completed"].append("false")
0
Ratnesh 26 फरवरी 2020, 01:00