尝试将float()放在任何地方,但我仍然得到相同的消息。你知道吗
def getAmountOfCarbon(volume):
carbon = 1.8 + 2 * math.log(volume)
return carbon
carbon = []
for listitem in lists:
carbonlist = getAmountOfCarbon(volume)
carbon.append(carbonlist)
My lists变量是一个函数:
lists = readCSVfile(str1)
print carbon
TypeError: a float is required
我应该把浮子放在哪里?你知道吗
编辑:卷来自:
def getVolume(width, height, length):
volume = (width) * (height) * (length)
return volume
编辑: 我在这里称为音量:
volume = []
for listitem in lists:
volumelist = getVolume(listitem[2], listitem[3], listitem[4])
volume.append(volumelist)
编辑: 以另一种方式解决:
def createAnalyseList(lists):
analyselist = []
for item in lists:
height = getHeightType(item[4])
carbon = getAmountOfCarbon(getVolume(item[2],item[3],item[4]))
analyselist.append([item[0], item[1], height, carbon])
print analyselist
return analyselist
analyselist = createAnalyseList(lists)
好吧,我想现在我明白问题所在了。似乎您在代码中这样做:
在这里,第二个循环中的
volume
仍然是第一个循环中创建的卷的整个列表,您正试图将该列表转换为一个“carbon”值(因此是TypeError
),并将其附加到carbon
列表中原始lists
中的每个值!这似乎没有多大意义。你知道吗相反,请尝试以下方法:
或使用
map
(仅限Python 2):或者作为一个列表:
或一次全部(未测试):
另外,请注意
readCSVfile
函数中的代码都是重复的。你可以这样做:做一些更改,假设您的lists变量是一个int/float列表,我已经成功地执行了您的示例(还假设
listitem
和volume
是相同的):相关问题 更多 >
编程相关推荐