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



我构建了以下字典,它从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中的计数器连续增加三次时,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

最新更新