2

リスト内のランダムな要素に設定されている複数の変数が必要です。今、私はそれを次のようにやっています:

from random import choice

list = ["a", "b"]
foo = choice(list)
bar = choice(list)
baz = choice(list) #etc.

これを行うためのより良い方法があると確信しています。私は試した

 foo = bar = baz = choice(list)

しかし、もちろん、それらすべてをランダムに1回選択されたリストの単一の要素に設定するだけであり、各変数を新しいrandom.choiceに設定する必要があります。

4

4 に答える 4

7

リストから3つの異なる要素をrandom.sample()取り出したい場合に使用できます(つまり、に等しくなることはなく、希望するものではない可能性があります)。foobar

foo, bar, baz = random.sample(l, 3)

は組み込み型であるlため、変数の名前をに変更しました。list誤ってオーバーライドするのはきれいではありません。

于 2012-09-14T08:19:38.150 に答える
5

多分選択出力でリストを作成しますか?何かのようなもの

choices = [choice(list) for i in range(10)]

あなたは10の要素を持っていますか?また、別の名前に変更listします。

于 2012-09-14T08:20:55.957 に答える
1

@Alexが提案したように、結果としてリストを取得しません:

foo, bar, baz = [random.choice(list) for i in range(3)]
于 2012-09-14T08:34:28.200 に答える
1

dict私はそれらをth ​​enusingsomedict['foo']スタイルアクセスに入れることを検討します:

from random import choice

CHOICES = ('a', 'b')
choices = {name: choice(CHOICES) for name in ['foo', 'bar', 'baz']}
于 2012-09-14T08:38:20.650 に答える