2013-12-09 32 views
1

我試圖運行該代碼與一個DataList是浮動的列表:爲+不支持的操作類型:幻影類型錯誤(Python的3.3)

meanData = round(float((sum(dataList)/len(dataList))), 2) 

它給了我一個TypeError「廉政」和'str',儘管我甚至沒有使用+運算符。可能是什麼問題?

+3

「儘管我甚至沒有使用+運算符。」你不知道,但是你認爲'sum()'做了什麼? – glglgl

回答

2

dataList包含數字和字符串。修復。

+1

'dataList'不需要包含數字來產生這個消息,我不這麼認爲,因爲默認的起始值是0. – DSM

+0

@DSM:即使你使用自定義的'start'來解決這個問題,比如'sum( dataList,'')',你會得到'TypeError:sum()不能求和字符串[用''.join(seq)]]。 – abarnert

3

dataList必須包含一個或多個字符串。此外,sum不支持字符串。

請參見下面的演示:

>>> lst = [1, 2, 3, '4'] 
>>> sum(lst) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 
>>> 

爲了解決這個問題,你需要做dataList只包含整數或浮點數。

+0

我想清楚發生了什麼事。我有一個for循環,通過列表中的每個成員,但我忘了float()不起作用。這似乎總是讓我感動。 – MadDoctor5813