2012-04-11 25 views
5

मैं map फ़ंक्शन का उपयोग करके किसी सूची के मूल्यों को परिवर्तित करने का प्रयास कर रहा हूं लेकिन मुझे एक अजीब परिणाम मिल रहा है।मानचित्र के साथ समस्या()

s = input("input some numbers: ") 
i = map(int, s.split()) 
print(i) 

देता है:

input some numbers: 4 58 6 
<map object at 0x00000000031AE7B8> 

कारण है कि यह वापस नहीं करता है [ '4', '58', '6']?

+0

आप प्रिंट (एसटीआर (i)) के साथ की कोशिश की? – Soader03

+0

मेरे लिए अपेक्षित काम करता है, क्या आप हमें कुछ संदर्भ दे सकते हैं? पायथन संस्करण? क्या आप 2.x या 3.x का उपयोग कर रहे हैं? – KurzedMetal

+0

मैं अजगर 3.2.2 का उपयोग कर रहा हूं, इस बिंदु पर कोई संदर्भ नहीं है। – Sergei

उत्तर

9

आप अजगर 3 का उपयोग कर रहे हैं जो सूचियों के बजाय जनरेटर लौटाता है।

इसे मानचित्र जनरेटर असाइन करने के बाद चर पर list(x) पर कॉल करें।

+4

यह ध्यान देने योग्य है कि आप एक सूची के रूप में एक सूची समझ का उपयोग कर सकते हैं - '' [int (x) x के लिए s.split()] ''। यह अच्छा और पठनीय है, हालांकि इस (सरल) मामले में, मैं नहीं कहूंगा कि नक्शा अपठनीय है। –

2

आपको list(i)['4','58','6']map के रूप में पाइथन 3 में एक सूची के बजाय जेनरेटर लौटाता है। इसके अलावा, जैसा Lattyware पहले उत्तर की टिप्पणी में बताया तो आप बेहतर ऐसा करते हैं:

i = [int(x) for x in s.split()] 
+0

क्यों? [jamylak का जवाब] (http://stackoverflow.com/a/10106900/722121) बेहतर बताता है। –

+1

उसने मेरे सामने पोस्ट किया और समझाया। तो मैंने नहीं किया: पी – mshsayem

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