我正在编写一个脚本,用于观看在线投币游戏,并保持结果汇总。我想找到一种更简单的方法来找出条纹在三个相同结果,四个相同结果等之后结束的次数。
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
提前谢谢!
答案 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