在python中从列表中随机选择两个组

2024-05-20 18:46:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我该如何编写代码,让9个人的列表尽可能平均地分成两辆车,但在python中他们被随机地放在每辆车中? 基本上我在寻找类似的回报:
车1:Person8、Person2、Person4、Person7
车2:Person5,Person1,Person3,Person6,Person9


Tags: 代码列表person1每辆车person2person3person7person9
2条回答

把整张单子洗一下,然后把单子分成两张,一张有4个人,另一张有剩下的人:

import random

people = ['foo', 'bar', 'baz', 'eggs', 'ham', 'spam', 'eric', 'john', 'terry']
random.shuffle(people)
car1, car2 = people[:4], people[4:]

如果无法直接对人员列表排序,请改用random.sample()

people = ['foo', 'bar', 'baz', 'eggs', 'ham', 'spam', 'eric', 'john', 'terry']
shuffled = random.sample(people, len(people))
car1, car2 = shuffled[:4], shuffled[4:]

后一种方法的演示:

>>> import random
>>> people = ['foo', 'bar', 'baz', 'eggs', 'ham', 'spam', 'eric', 'john', 'terry']
>>> shuffled = random.sample(people, len(people))
>>> shuffled[:4], shuffled[4:]
(['bar', 'baz', 'terry', 'ham'], ['spam', 'eric', 'foo', 'john', 'eggs'])
from random import shuffle
x = [i for i in range(10)]
shuffle(x)
print x
mid = int(len(x)/2)
car1 = x[:mid]
car2 = x[mid:]
print car1
print car2

相关问题 更多 >