पायथन में, एक dict को कैसे पुनरावृत्त करें और प्रत्येक कुंजी के मूल्यों में वृद्धि करें?

D = {k1:1, k2:2}

मैं चाहता हूं कि D {k1:2, k2:3} हो।

1
Xin Tian 27 मार्च 2018, 21:09

4 जवाब

सबसे बढ़िया उत्तर

मेरे पास आपके लिए एक और समाधान है, मुझे आशा है कि यह उपयोगी है।

for key in D:
    D[key] +=1
0
divibisan 27 मार्च 2018, 19:48
D = {"k1":1, "k2":2}

for i in D:
  D[i] += 1

print(D)

ऐसा लगता है कि चाल चल रही है, मुझे k1/k2 पर यकीन नहीं था इसलिए मैंने उन्हें परीक्षण के लिए तार बना दिया

1
TPup 27 मार्च 2018, 21:37

आप या तो संशोधित कर सकते हैं (जिसे "म्यूटेट" भी कहा जाता है) शब्दकोश डी:

for k in D.keys():
    D[k] = D[k] + 1 

या आप एक नया शब्दकोश बना सकते हैं और डी को फिर से असाइन कर सकते हैं:

D = { k: v+1 for k, v in D.items() }

अंतर स्पष्ट हो जाएगा यदि कुछ और डी पर इंगित करता है, या यदि डी बहुत बड़ा है और जगह में अद्यतन करने की तुलना में फिर से बनाने में अधिक समय लगता है।

1
Andrey Fedorov 27 मार्च 2018, 20:31

आप प्रत्येक मान को बढ़ाने के लिए dict समझ का उपयोग कर सकते हैं, फिर उसे वापस असाइन करें

>>> {k: v+1 for k,v in D.items()}
{'k1': 2, 'k2': 3}
2
Cory Kramer 27 मार्च 2018, 18:10