python中的连续硬币计数?

python中的连续硬币计数?,python,Python,我正在努力自学Python,我正在修改代码,目前在多次翻转中计算正面和反面的数量。我想让它数一数连续的人头数。这是我到目前为止的代码 def coinFlips(numberOfTosses): Heads = 0 tossNum = 0 while tossNumber < numberOfTosses: value = random.randint(1,2) if value == 1: numHeads

我正在努力自学Python,我正在修改代码,目前在多次翻转中计算正面和反面的数量。我想让它数一数连续的人头数。这是我到目前为止的代码

def coinFlips(numberOfTosses):
    Heads = 0
    tossNum = 0
    while tossNumber < numberOfTosses:
        value = random.randint(1,2)
        if value == 1:
            numHeads = Heads + 1
        tossNum = tossNum + 1
    return (Heads, numTosses-Heads)
def coinFlips(numberofthows):
人头=0
tossNum=0
tossNumber

我觉得答案就在眼前,但我一辈子都想不出来

听起来像是您想按连续的正面和反面进行分组,然后找到只有正面(
1
)的抛投列表的
max
len


你的问题是什么?@BrenBarn不计算正面/反面的数量,我希望它返回在一行中翻转的最长“条纹”的头部。你想要输出
a
,但已经为
B
编码,你希望a如何来自B?
import itertools as it
def coinFlips(numberOfTosses):
    flips = (random.randint(1,2) for _ in range(numberOfTosses))
    return max(len(list(tosses)) for coin, tosses in it.groupby(flips) if coin == 1)
            ^   ^   ^^    ^^                              ^^                   ^^
           max len list tosses                    groupby consecutive       only heads