का हिस्सा के साथ एक dict अद्यतन मैं अक्सर इस संरचना का उपयोग कर अपने आप को लगता है: dict2
के सबसेट के साथ dict1
अद्यतन करने काएक और dict
dict1['key1'] = dict2['key1']
dict1['key2'] = dict2['key2']
dict1['key3'] = dict2['key3']
तरह।
मुझे लगता है कि वहाँ कोई प्रपत्र
dict1.update_partial(dict2, ('key1', 'key2', 'key3'))
क्या दृष्टिकोण आप आमतौर पर लेने में ही बात कर के लिए एक निर्मित विधि है? क्या आपने इसके लिए अपना काम किया है? यह कैसा लग रहा है?
टिप्पणियां?
मैं प्रस्तुत की है अजगर-विचारों के लिए एक idea:
कभी कभी तुम एक dict जो एक और dict का उपसमुच्चय होती है चाहता हूँ। यह अच्छा होगा अगर dict.items वापस करने के लिए कुंजी की एक वैकल्पिक सूची स्वीकार कर लिया। यदि कोई कुंजियां दी गई हैं - डिफ़ॉल्ट व्यवहार का उपयोग करें - सभी आइटम प्राप्त करें।
class NewDict(dict):
def items(self, keys=()):
"""Another version of dict.items() which accepts specific keys to use."""
for key in keys or self.keys():
yield key, self[key]
a = NewDict({
1: 'one',
2: 'two',
3: 'three',
4: 'four',
5: 'five'
})
print(dict(a.items()))
print(dict(a.items((1, 3, 5))))
[email protected]:~/Desktop$ python test.py
{1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}
{1: 'one', 3: 'three', 5: 'five'}
तो एक और dict का एक हिस्सा के साथ एक dict अद्यतन करने के लिए, आप का प्रयोग करेंगे:
dict1.update(dict2.items(['key1', 'key2', 'key3']))
मैंने कुछ नया नहीं सीखा - वास्तव में कोई शॉर्टकट नहीं है ... मुझे यह जवाब पसंद है - यह अधिक स्पष्ट है। और मुझे लगता है कि यह एक्वाविटा के जवाब से तेज़ है, क्योंकि यह कोई मध्यस्थ सूची या जनरेटर नहीं बनाता है। – warvariuc