【发布时间】:2021-09-27 03:50:50
【问题描述】:
我构造了以下字典,它从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}
实现这一目标的最有效方法是什么?
【问题讨论】:
-
您还想在
new_dict中看到哪些其他可能的值?您展示了一个带有单个键和一个值的示例:1。 -
也许最好实现另一个计数功能,即每当
new_dict中的计数器增加时(即三个周期内dict中的计数器增加1),然后再次计数器在new_dict中应该增加1并且对于所有键。 -
你的意思是
new_dict中的值应该是dict中的值(顺便说一句请换个名字)除以3吗? -
new_dict应该简单地计算在dict中发生三个连续计数器的实例(例如,如果 (3,3) 在周期 1、2 和 3 中获得计数器,那么new_dict应该算作1)。请原谅不好的命名。
标签: python dictionary for-loop key counter