4

現在、ユーザーが比較するリストから一度に2つのアイテムをランダムに選択するプログラムを作成しようとしています.2つのアイテムを2回比較したり同じアイテムをそれ自体と比較したりすることはありません。

list1 = ['item1', 'item2', 'item3', 'item4', 'item5']

ではlist1、random.choice を使用したいと思います。

item_chosen = random.choice(list1)
print(item_chosen)
item_chosen2 = random.choice(list1)
print(item_chosen2)

ここでの問題はitem_chose、 と同じである可能性がありitem_chosen2、ループを設定すると、同じ比較が複数回行われることです。また、プログラムは、すべてのリスト項目が相互に比較されたことを認識する必要があります (可能なすべての組み合わせで複数の項目すべての比較を手動でコーディングするには、非常に時間がかかります)。

4

3 に答える 3

5

使用random.sample:

item1, item2 = random.sample(list1, 2)

これは から 2 つの一意の要素を取得しますlist1(つまりitem1、 とitem2は異なることが保証されています)。

于 2012-10-26T03:37:07.103 に答える
1

( を使用してrandom.shuffle) リストをシャッフルし、シャッフルされたリストから順番に項目を一度に 2 つ取得します。

于 2012-10-26T03:40:17.683 に答える
1

random.shuffle()おそらく、代わりに次を使用する方がよいでしょうrandom.choice():

list1 = ['item1', 'item2', 'item3', 'item4', 'item5']

random.shuffle(list1)
item_chosen = list1.pop()
print(item_chosen)
item_chosen2 = list1.pop()
print(item_chosen2)
于 2012-10-26T03:42:31.847 に答える