从一组名称中打印两个随机的,不同的名称

时间:2011-10-14 11:51:00

标签: python random

import random  
mylist = ['anthony', 'kris', 'james', 'vinny', 'joe']  
randomList1 = random.randrange(0,len(mylist))  
randomList2 = random.randrange(0,len(mylist))  
name2 = mylist[randomList1]  
name3 = mylist[randomList2]  
print 'The group will consist of', name2, 'and', name3,'. '

代码是否有问题,这不适合我,但是这样做的人试图从mylist中打印两个随机名称,但当然使用当前代码它偶尔会打印两个相同的

给出here的解决方案可能有一些用途来回答,但我已经尝试了一些方法来帮助他,但我不是蟒蛇专家,我现在不能直接思考。

5 个答案:

答案 0 :(得分:8)

使用random.sample

>>> import random  
>>> mylist = ['anthony', 'kris', 'james', 'vinny', 'joe']
>>> random.sample(mylist, 2)
['james', 'vinny']

答案 1 :(得分:2)

>>> from random import sample
>>> mylist = ['anthony', 'kris', 'james', 'vinny', 'joe']
>>> sample(mylist,2)
['kris', 'vinny']

答案 2 :(得分:2)

您可以使用random.sample设置k = 2

random.sample(population, k)

从群体序列中选择k个唯一的随机元素。

答案 3 :(得分:0)

选择名字后,将其从列表中删除,然后从该新列表中选择一个随机名称。

答案 4 :(得分:0)

如果没有random.sample,我会建议

import random  
mylist = ['anthony', 'kris', 'james', 'vinny', 'joe']  
randomList1 = random.randrange(0, len(mylist))  
randomList2 = random.randrange(0, len(mylist) - 1)
if randomList2 == randomList1:
    randomList2 = len(mylist) - 1
name2 = mylist[randomList1]  
name3 = mylist[randomList2]  
print 'The group will consist of', name2, 'and', name3,'. '

我。例如,少拿一个,如果恰好与第一个相同,则取最后一个。