我有一个交通灯枚举定义可能的状态:
class TrafficLightPhase(Enum):
RED = "RED"
YELLOW = "YELLOW"
GREEN = "GREEN"
我每秒轮询一个红绿灯以获取当前状态,然后deque
使用此函数将值放入 a 中:
def read_phases():
while running:
current_phase = get_current_phase_phases()
last_phases.append(current_phase)
time.sleep(1)
我想对相同状态的序列进行分组,以学习红绿灯相位计时。
我尝试使用Counter
class of collections
,如下所示:
counter = collections.Counter(last_phases)
它对不同的状态进行了很好的分组,但我不知道下一个周期何时开始。是否有类似Counter
的允许重复的数据结构?所以我可以得到如下结果:
Counter({
'RED': 10,
'GREEN': 10,
'YELLOW': 3,
'RED': 10,
'GREEN': 10,
'YELLOW': 3,
'RED': 10,
'GREEN': 10,
'YELLOW': 3
})
而不是:计数器({'RED':30,'GREEN':30,'YELLOW':9 })