2015-05-16 5 views
6

इम छोरों यहाँ का उपयोग कर एक शब्दकोश creat करने के लिए कोशिश कर रहा पॉप्युलेट मेरी कोड है:एक शब्दकोश छोरों (अजगर) के लिए उपयोग कर

dicts = {} 
keys = range(4) 
values = ["Hi", "I", "am", "John"] 
for i in keys: 
    for x in values: 
     dicts[i] = x 
print(dicts) 

इस आउटपुट:

{0: 'John', 1: 'John', 2: 'John', 3: 'John'} 

क्यों?

मैं इसे उत्पादन बनाने के लिए योजना बना रहा था:

{0: 'Hi', 1: 'I', 2: 'am', 3: 'John'} 

क्यों नहीं देता है यह उत्पादन कि जिस तरह से और हम इसे कैसे उत्पादन सही ढंग से कर सकता हूँ?

+1

पाश – Ajay

+0

के लिए दूसरे में एक प्रिंट बयान जोड़ने मैंने कोशिश की है कि उत्पादन अभी भी एक ही –

+0

जांच जवाब मैं दे दिया – Ajay

उत्तर

6
dicts = {} 
keys = range(4) 
values = ["Hi", "I", "am", "John"] 
for i in keys: 
     dicts[i] = values[i] 
print(dicts) 

वैकल्पिक रूप से

In [7]: dict(list(enumerate(values))) 
Out[7]: {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'} 
+1

अपने asnwer के लिए धन्यवाद। वह दिलचस्प है। क्योंकि गणना भी संख्याओं को सही देता है? ठंडा –

4
>>> dict(zip(keys, values)) 
{0: 'Hi', 1: 'I', 2: 'am', 3: 'John'} 
+1

यह इतना आसान लगता है कि मैंने लूप के लिए शर्मिंदा हूं। बहुत बहुत धन्यवाद –

+0

अच्छी तरह से यह मानता है कि चाबियाँ और मान एक ही सूचकांक से सही ढंग से जुड़े हुए हैं ... मुझे लगता है कि लूप भी यह मानता है, लेकिन यह थोड़ा अधिक लचीला है –

+0

@ माइकपाल्मिस: पायथन दस्तावेज गारंटी देता है कि यह है जब तक शब्दकोश के बीच में उत्परिवर्तित नहीं किया जाता है तब तक मामला। –

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