2011-03-17 20 views
9

यह मेरा कोड है:सबसे अच्छा तरीका है dict

a = dict(aa='aaaa', bb='bbbbb', cc='ccccc', ...) 
print(a.pop(['cc', ...])) 

लेकिन यह एक त्रुटि को जन्म देती है। पाइथन शब्दकोश से कई तत्वों को पॉप करने का सबसे आसान तरीका क्या है?

उत्तर

17

कैसे सरल के बारे में:

for e in ['cc', 'dd',...]: 
    a.pop(e) 
+0

एक, अच्छा सरल और साफ रास्ता * * कई तत्वों को दूर करने के लिए है। यदि आप उन्हें पॉप करना चाहते हैं, तो आपको सूची समझ में पॉप का उपयोग करने के बजाय शायद कोई आसान समाधान नहीं मिलेगा। हालांकि यह बिल्कुल "स्वच्छ" नहीं है, वही वह चाहता है;) –

3

अगर मैं सही ढंग आप क्या चाहते हैं समझते हैं, इस चाल करना चाहिए:

print [a.pop(k) for k in ['cc', ...]] 

सावधान, हालांकि रहें, क्योंकि pop विनाशकारी है, यानी उसे संशोधित करता है तुम्हारा शब्दकोश।

17

सूची समझ का उपयोग करना:

a = {'key1':'value1','key2':'value2','key3':'value3'} 
print [a.pop(key) for key in ['key1', 'key3']] 
0
a={'aa':'aaaa','bb':'bbbbb','cc':'ccccc'} 
remove = ['aa', 'cc'] 
newA = dict([(k, v) for k,v in a.items() if k not in remove]) 
+0

आपने "प्रिंट" भाग को याद किया ... –

संबंधित मुद्दे