2010-04-29 9 views
8

में कुंजी है, मुझे शब्दकोश कुंजी में से एक के लिए एक कुंजी त्रुटि मिल रही है, भले ही मुझे वास्तव में शब्दकोश में कुंजी है। इस बारे में कोई विचार क्या हो सकता है?पायथन ने कुंजीपटल (शब्दकोश कुंजी से बाहर के लिए) को बढ़ाया है, भले ही कुंजी

print G.keys() 

रिटर्न निम्नलिखित:

['24', '25', '20', '21', '22', '23', '1', '3', '2', '5', '4', '7', '6', '9', '8', '11', '10', '13', '12', '15', '14', '17', '16', '19', '18'] 

लेकिन जब मैं कोड की अगली पंक्ति शब्दकोश में एक मूल्य तक पहुँचने का प्रयास ...

for w in G[v]: #note that in this example, v = 17 

मैं निम्नलिखित त्रुटि मिलती है संदेश:

KeyError: 17 

किसी भी मदद, सुझाव, या सलाह सभी की सराहना की जाती है। धन्यवाद।

+0

नोट करने योग्य एक और चीज़ को परिवर्तित करना होगा, मैंने विभिन्न महत्वपूर्ण मानों (1, 2, 3, आदि) तक पहुंचने का प्रयास किया है और फिर भी वही परिणाम प्राप्त कर सकते हैं। – ignorantslut

+3

क्या वी 17 या '17' पर सेट है? – Syntactic

उत्तर

26

कि आसान है, 17 != '17'

+0

वाह मैं बेवकूफ की तरह महसूस करता हूँ। मैं इन मानों को एक फाइल से पढ़ रहा हूं, किसी कारण से यह मेरे लिए नहीं हुआ - धन्यवाद! – ignorantslut

+1

मेरे लिए एक डिजाइन दोष की तरह बदबू आ रही है। – tchrist

+0

@tchrist भाषा में एक डिजाइन दोष के रूप में तारों के लिए इंक के अंतर्निहित जानवरों की अनुपस्थिति की अनुपस्थिति? – wRAR

5

कुंजी रहे हैं तार, आप ints के रूप में उन्हें का उपयोग करने की कोशिश कर रहे हैं।

+0

तो? गूंगा है कि इससे कोई फर्क नहीं पड़ता। यह जावा नहीं है, आप जानते हैं! – tchrist

+2

@ क्रिसमस: गलत। पायथन दृढ़ता से टाइप किया गया है ... जैसा कि यह होना चाहिए। यह PHP नहीं है, आप जानते हैं! (नीरस।) – FogleBird

3

v = '17' के साथ प्रयास करें। आपको अपनी int को स्ट्रिंग

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