【发布时间】:2017-08-06 22:36:40
【问题描述】:
我收到一个我不理解的类型错误。我想用另一个列表中的月份名称来编制一个比平均月份更好/更差的列表来标记它们。对此仍然很新,所以我敢打赌,有一种我还不知道的非常直观的方法来做到这一点。 注释是(将要)包含的类型:
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
【问题讨论】:
-
months[1292.23]应该是什么?你为什么要把它附加到goodmonths? -
net的值是多少? -
这个想法是从现有列表(网络)中获取值并将其添加到新列表中(好)。因为 net[] 中的每个值都对应一个月,所以我还希望将前一个列表中的月份(即索引)存储在某个地方,这就是 goodmonths 列表的想法。
标签: python python-3.x types typeerror