n
コインのランダムなリストに反転を生成するために、あなたはまた、より簡潔な方法で同じロジック表現するlist comprehensionを使用することができます。上記のコードで
>>> import random
>>>
>>> def randomlist(n):
... return ["heads" if random.randint(0, 1) else "tails"
... for _ in range(n)]
...
>>> randomlist(10)
['tails', 'tails', 'tails', 'tails', 'heads', 'heads', 'heads', 'tails', 'tails', 'heads']
>>> randomlist(6)
['heads', 'tails', 'heads', 'heads', 'heads', 'heads']
を、ランダムな整数0または"heads"
または"tails"
の間で0を計算すると0をFalse
とし、1をTrue
とすると、(1または2とは対照的に)1が生成されます。あなたの目的は、コインにn
回ひっくり返すのすべての可能の結果を生成する場合
さて、あなたはitertools.productを使用することができます。 n=3
のための一例(読みやすくするために短縮され、最終的な出力):
>>> from itertools import product
>>> all_outcomes = product(("heads", "tails"), repeat=3)
>>> list(all_outcomes)
[('heads', 'heads', 'heads'), ('heads', 'heads', 'tails'), ...]
彼らはこの種の割り当てをどこかに求めていますか?別のスライス割り当て[数分後]を見ました(http://stackoverflow.com/q/37927386/4099593)。 –
'(" heads ")'はタプルではなく文字列であり、そのスライス割り当ては個々の文字を区切る 'l.extend(" heads ")'と等価であることに注意してください。 –