当people
列表为空(长度为 0)。您可能想测试一下:
>>> import random
>>> random.randrange(0, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/mj/Development/Libraries/buildout.python/parts/opt/lib/python2.7/random.py", line 217, in randrange
raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
ValueError: empty range for randrange() (0,0, 0)
如果您需要添加 6 个随机选择people
最好列出shuffle the people
列表,然后将该列表的前 6 个添加到group
:
import random
people = 'Alice Elise Jack Jill Ricardo David Jane Sacha Thomas'.split()
random.shuffle(people)
group.extend(people[:6])
people = people[6:] # remainder, so the 6 picks have been removed
但当然有可能在某个时候你会再次得到一个空列表。
另一种方法是只使用random.sample() http://docs.python.org/2/library/random.html#random.sample:
people = 'Alice Elise Jack Jill Ricardo David Jane Sacha Thomas'.split()
group.extend(random.sample(people, 6))
这只是从列表中随机选择 6 个名称,但留下people
不受影响,未来选出的 6 个名字可能会重复。