我收到一个类型错误,我不明白。我想编一个比一般月份更好/更差的月份的列表,并在另一个列表中列出月份名称来标记它们。这还是很新的,所以我打赌有一个真正直观的方法来做这件事,我还不知道。 注释包括以下类型:
good= [] #---- float
bad= [] #---- float
goodmonths = [] #---- string (month names)
badmonths = [] #---string
for i in net: #----float
if i > average: #---also float
good.append(i)
goodmonths.append(months[i])
elif i < average:
bad.append(i)
badmonths.append(months[i])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-136-362a333d8546> in <module>()
6 if i > average:
7 good.append(i)
----> 8 goodmonths.append(months[i])
9 elif i < average:
10 bad.append(i)
TypeError: list indices must be integers or slices, not float
我想接收这样的输出:
Good months:
Jan: 1292.23
Feb: 1738.09
etc... ditto for badmonths
看起来您正试图使用一个浮点变量(i)来集成循环,它们必须是直整数。你知道吗
我认为您试图以两种不兼容的方式使用一个变量:作为列表索引和相应的值。试试这个:
mon是列表索引;i是来自net的值。您应该将这些更改为描述性变量名。你知道吗
问题是
months[i]
,因为索引不能是float类型(例如,4.5项是什么?)所以你必须把它转换成一个整数。最简单的方法应该是用months[int(i)]
替换months[i]
相关问题 更多 >
编程相关推荐