4

我目前正在尝试创建一个程序,该程序一次从列表中随机选择两个项目供用户进行比较,而不将两个项目比较两次或将同一项目与其自身进行比较。

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)

这得到了两个独特的元素list1(即item1并且item2保证是不同的)。

于 2012-10-26T03:37:07.103 回答
1

打乱列表(使用random.shuffle)并从打乱列表中依次取出两个项目。

于 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 回答