检查 dict 是否获得连续的增量计数器

Check if dict gets consecutive incremental counters

我构建了以下字典,它获取从 for-loop 开始的计数器。 for-loop 做这样的事情:

for period in range(number_periods):

  if value > mean_value: 

    dict[key] += 1 ​

据此,我得到以下词典:

dict = {(1, 1): 0, (2, 2): 0, (3, 3): 3}

现在我想知道如果字典中的一个键得到一个计数器,例如for-loop(即k=3)的三个连续周期,我想分别识别这些键并将其存储在新字典中。

因此,如果发生以下情况,我想创建一个新字典或打印计数器连续增加的特定键。

period = 1: dict = {(1, 1): 0, (2, 2): 0, (3, 3): 0}
period = 2: dict = {(1, 1): 0, (2, 2): 0, (3, 3): 1}
period = 3: dict = {(1, 1): 0, (2, 2): 0, (3, 3): 2}
period = 4: dict = {(1, 1): 0, (2, 2): 0, (3, 3): 3}

new_dict = {(3, 3): 1}

也就是说,new_dict 表示发生此连续递增的键(对于给定示例,如果 k=3 则恰好发生一次。

new_dict 本身应该具有计数功能,即每当 dict 中的计数器连续增加 3 次时,new_dict 中的计数器应该增加 1。如果下次出现这种情况,new_dict应该再次调整:

new_dict = {(3, 3): 2}

实现此目标的最有效方法是什么?

您可能希望发生这种情况的一种方法是检查何时增加 dict 中的值:

for period in range(number_periods):
    if value > mean_value: 
        dict[key] += 1 ​
        v = dict[key]
        v3 = v//3
        if v3 > 0:
            new_dict[key] = v3