2012-03-17 13 views
8

मैं अपना होमवर्क कर रहा हूं और मुझे इनपुट नंबर सूची का मतलब खोजने के लिए एक योग() और लेन() फ़ंक्शन का उपयोग करने की आवश्यकता है, जब मैंने सूची का योग प्राप्त करने के लिए sum() का उपयोग करने का प्रयास किया, तो मुझे मिला एक त्रुटि TypeError: +: 'int' और 'str' के लिए असमर्थित ऑपरेंड प्रकार (ओं)। मेरा कोड निम्नलिखित है:पायथन में किसी सूची के लिए मैं sum() फ़ंक्शन का उपयोग कैसे कर सकता हूं?

numlist = input("Enter a list of number separated by commas: ") 

numlist = numlist.split(",") 

s = sum(numlist) 
l = len(numlist) 
m = float(s/l) 
print("mean:",m) 
+1

के लिए अपने इनपुट था क्या? – franka

+2

's = sum (नक्शा (int, numlist))' – cji

उत्तर

9

समस्या यह है कि आपके पास तारों की एक सूची है। योग की गणना करने से पहले आपको उन्हें पूर्णांक में बदलने की आवश्यकता है। उदाहरण के लिए:

numlist = numlist.split(",") 
numlist = map(int, numlist) 
s = sum(numlist) 
... 
13

समस्या यह है कि जब आप इनपुट से पढ़ते हैं, तो आपके पास तारों की एक सूची होती है। आप अपने दूसरी पंक्ति के रूप में ऐसा ही कुछ कर सकता है:

numlist = [float(x) for x in numlist] 
0

स्प्लिट आप तार की एक सरणी देता है, ताकि आप योग समारोह उपयोग करने से पहले पूर्णांकों के लिए इन कन्वर्ट करने के लिए की जरूरत है।

3

आप स्ट्रिंग जोड़ रहे हैं, न कि संख्याएं, जो आपका त्रुटि संदेश कह रहा है।

Convert अपने संबंधित पूर्णांक में हर स्ट्रिंग:

numlist = map(int, numlist) 

और फिर औसत ले (ध्यान दें कि मैं float() का उपयोग की तुलना में अलग तुम क्या):

arithmetic_mean = float(sum(numlist))/len(numlist) 

आप विभाजित पहले float() उपयोग करना चाहते हैं , float(1/2) = float(0) = 0.0 के रूप में, जो आप नहीं चाहते हैं।

एक वैकल्पिक बस उन सब को float बनाने के लिए पहली जगह में होगा:

numlist = map(float, numlist) 
+0

जब तक ओपी पी 3 में नहीं है, तो इस मामले में सच्चा विभाजन डिफ़ॉल्ट है। – lvc

+0

हम्म, यह भी मामला हो सकता है। – Blender

0

आप इस कोशिश कर सकते हैं।

reduce(lambda x,y:x+y, [float(x) for x in distance]) 
0

स्ट्रिंग इनपुट को फ्लोट मानों की सूची में कनवर्ट करें। यहां अद्यतन कोड है।

numlist = list(map(int,input("Enter a list of number separated by commas: ").split(','))) 
l = len(numlist) 
s = sum(numlist) 
print("mean :",s/l) 
0

अजगर 2,7

numlist = map(int,raw_input().split(",")) 
s = sum(numlist) 
l = len(numlist) 
m = float(s/l) 
print("mean:"+ str(m)) 
संबंधित मुद्दे

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