如何跟踪各种条纹

时间:2019-06-06 08:10:11

标签: python

我正在编写一个脚本,用于观看在线投币游戏,并保持结果汇总。我想找到一种更简单的方法来找出条纹在三个相同结果,四个相同结果等之后结束的次数。

if result = heads:
headsCount += 1
headsStreak +=1

tailsCount = 0
tailsStreak = 0

headsCount是在一个会话中目击的heads结果的总数,而条纹只是为了显示行中出现了多少heads。这是通过以下方式更新的:

if headsCount >= headsStreak:
headsStreak = headsCount

我的问题-我希望跟踪条痕结束一次,结束两次,结束三次等等的次数...

我现在有一个愚蠢的方式:

if headsStreak = 1:
    oneHeadsStreak +=1
if headsStreak = 2
    twoHeadsStreal +=1

但这非常乏味。那么有没有更简单的方法来创建变量...例如:

for i in range (1, 20):
    (i)streak = 0

然后类似

for i in range (1, 20):
    if headsStreak = i:
        (i)streak += 1

提前谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用列表来跟踪条纹计数器。您将不得不考虑哪个索引是哪个条纹长度(例如,索引0表示条纹长度1,索引1表示长度2等)。

将所有列表元素初始化为零: l = [0 for i in range(20)] 然后,只要连胜结束,就在相应的索引处增加列表元素:l[3] += 1以获得4连胜。

答案 1 :(得分:0)

使用defaultdict,您只需要三个变量,

from collections import defaultdict
current_streak = 0
current_side = "heads"
streak_changes = defaultdict(int)

然后在条纹变化时将值存储在字典中

if side == current_side:
    current_streak += 1
else:
    current_side = side
    streak_changes[current_streak] += 1
    current_streak = 1