python - 有没有办法创建一个可以用作计数器的列表?

标签 python arrays list counter

我正在尝试创建一个用作计数器的列表,例如每次发生事件时,都会向其中添加一个数字以跟踪其发生的频率。它或多或少可以作为列表的索引。

我是 python 新手,这就是为什么有些人可能会将我的代码视为意大利面条代码。

我的主类调用一个长度为 0-50 个索引的数组类来创建它的对象。它还为该对象启动值为 0 的计数器,如下所示。

def __init__(self):
    self._table = Array((0,), (50,))
    self._counter = 0

我运行此方法,获取keyobj 的值来填充数组对象。但是,当向方法 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/

相关文章:

python - pandas 根据条件填充值列

python - Pandas 组 : usage in this instance

python - 如何使用递归实现插入排序,哪种效率更高?

java BufferedImage 到 int[] 问题

c# - 如何对具有相同子对象列表的对象进行分组?

python - 如何找到列表中最常见的元素?

javascript - 想要通过浏览器使静态 SVG 绘图(来自 matplotlib)具有交互性

c++ - 数组数据未对输出产生正确的计算

c++ - 使用c++中对象中函数的结果对对象数组进行排序

java - 如何从java中的列表返回变量并进入mysql数据库?