我需要有十个计数器,如果满足某些条件,我会在循环中更新。
我的常规方法是创建一个包含10个元素的列表并更新此列表的元素。
虚拟例子:
my_counters = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(100000):
if condition1:
my_counters[0] += 1
my_counters[4] += 1
elif condition2:
my_counters[2] += 1
my_counters[8] += 1
...
然而,这似乎是糟糕而低效的代码,我不知道为什么。
所以我想知道这个简单问题的最佳方法是什么。 我当然有一些建议:
1)为每个计数器使用一个变量缺点:变量太多,如果我需要100个计数器怎么办?
2)使用numpy数组而不是列表(那么它会被认为是好的和有效的代码吗?)
3)使用字典:这样每个变量都可以有一个代表名称,但是哈希不会使访问速度慢于索引吗?
解决这个问题的正确方法是什么?
而且,为什么更新列表的元素是有效的?难道不能立即计算地址吗?基地址+偏移量
由于