2017-04-19 10 views
-1

私は自分自身にPythonを教えようとしています。現在、数多くのフリップで頭や尾の数を数えているコードを修正しています。連続する頭の数を数えたいと思う。ここに私がこれまで持っていたコードがあります。連続したコインは、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) 

答えが顔の中を見つめているように感じますが、私の人生のためにそれを理解することはできません!あなたはgroupby連続で頭と尾にしたいし、その後のみヘッドの投げのlist1)のmaxlenを見つけるよう

+0

あなたの質問は何ですか? – BrenBarn

+0

@BrenBarnヘッド/テールの数をカウントする代わりに、行の中で最も長い「ストリーク」を返すようにしてください。 – arduino123

+0

出力を 'A'にしたいが、' B'のためにコーディングしました。 Bから来た? – NoobEditor

答えて

0

はサウンド:

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 
関連する問題