से विशिष्ट कुंजी-मान जोड़ों युक्त एक अजगर शब्दकोश बनाएं मैं कुछ कोड है कि कुछ इस तरह दिखता है:एक और शब्दकोश
d = {'foo': True, 'bar': 42, 'baz': '!'}
a = {'foo': d['foo'], 'bar': d['bar']}
b = {'foo': d['foo'], 'baz': d['baz']}
c = {'bar': d['bar'], 'baz': d['baz']}
निश्चित रूप से इस व्यक्त करने के लिए एक बेहतर तरीका है। मैं वास्तव में इस उम्मीद में डॉक्स पढ़ा है कि एक शब्दकोश के copy
विधि कुंजी नया शब्दकोश में शामिल किया जाना स्वीकार करता है:
# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')
मैं इस उद्देश्य के लिए एक समारोह लिख सकते हैं:
copydict = lambda dct, *keys: {key: dct[key] for key in keys}
a = copydict(d, 'foo', 'bar')
b = copydict(d, 'foo', 'baz')
c = copydict(d, 'bar', 'baz')
कोई बेहतर है उपरोक्त से समाधान?
आप बी, सी के लिए एक सूची (या एक सेट) का उपयोग क्यों नहीं करते? जब आपको इसकी ज़रूरत होती है तो आप ठंड को मूल्य में देखते हैं। – maxy
मैं वास्तव में Django के 'urlencode' फ़ंक्शन (', 'urllib.urlencode' की तरह, एक शब्दकोश स्वीकार करता है) में 'ए',' बी', और 'c' गुजर रहा हूं। – davidchambers
@BlaXpirit: आपको केवल "नंबर" वाला उत्तर लिखना चाहिए (एक HTML टिप्पणी के साथ न्यूनतम आकार के लिए पैड) ताकि हम सभी इसे पागलपन से वोट दे सकें। –