擅长:python、mysql、java
<p>使用zip形成条纹并计算只有一个值的条纹:</p>
<pre><code>from random import choice
from itertools import islice
flipCount = 20
streakSize = 6
coinList = [choice("HT") for _ in range(flipCount)]
allHeads = tuple("H",)*streakSize
allTails = tuple("T",)*streakSize
streakCount = sum( s==allHeads or s==allTails
for s in zip(*(islice(coinList,i) for i in range(streakSize))))
</code></pre>
<p>输出:</p>
<pre><code>print("".join(coinList))
print(streakCount)
# HHHHTTHHHHHHHTTHTHHH
# 2
</code></pre>