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