質問: farm[randint(0,randint(0,len(farm)))] ``` リストは最初は空で、あとから要素を追加していくと言うものです。 しかし、 IndexError: list index out of range と出てしまいます。 どのようにかけばエラーを避けられるでしょうか よろしくお願いします。
回答: @Yoshがいったように、これには、`random.sample(population, k)`や`random.choice(population)`が便利です。 * `random.sample()`は、リストからkサンプル数を返してくれます。 * `random.choice()`は、リストから、ひとつだけのサンプルを返してくれます。 使い方の例: ``` import random farm = [ "a", "b", "c", "d"] one_sample = random.choice(farm) two_samples = random.sample(farm, 2) ``` 結果: ``` >>> one_sample 'b' >>> two_samples ['c', 'a'] ``` ちなみに、`random.suffle()`を使って、同じことができます * `random.suffle(x)`は、シーケンス x をインプレースにによって混ぜます。 例: ``` import random farm = [ "a", "b", "c", "d"] random.suffle(farm) # 一つのサンプル one_sample = farm[0] two_samples = farm[:2] ```