我正在尝试创建一个用作计数器的列表,例如每次发生事件时,都会向其中添加一个数字以跟踪其发生的频率。它或多或少可以作为列表的索引。
我是 python 新手,这就是为什么有些人可能会将我的代码视为意大利面条代码。
我的主类调用一个长度为 0-50 个索引的数组类来创建它的对象。它还为该对象启动值为 0 的计数器,如下所示。
def __init__(self):
self._table = Array((0,), (50,))
self._counter = 0
我运行此方法,获取key
和obj
的值来填充数组对象。但是,当向方法 enter_value()
输入参数时,会出现错误,指出 TypeError: 'int' object is not subscriptable
。
def populate_test(self, key, obj):
for i in range(len(self._table._array)):
self._table.enter_value(self._counter, (key, obj))
self._counter = self._counter + 1
这是enter_value方法。
def enter_value(self, index, value):
for i in range(len(self._table._array)):
###Here's where the error occurs
if (index[i] < self._low[i]) or (index[i] > self._high[i]):
//Do something
据我所知,可订阅对象是充当列表或字典的东西。由于我的计数器是一个 int
对象而不是一个列表,所以我的错误是否是由于 index[i]
导致的?如果是这样的话,对于我关于这篇文章的问题,有没有办法让我创建一个可以作为更好的计数器的列表?
最佳答案
是的,发生错误是因为您的 self._counter
变量是 int
如果您想要一个列表作为计数器,您可以使用:
self._counter = [0]
每次你想增加计数器时,你可以这样做:
self._counter.append(self._counter[-1] + 1)
self._counter[-1]是你的实际计数器值
关于python - 有没有办法创建一个可以用作计数器的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60351356/