不必对列表进行三次采样(这将始终为您提供三个独立的结果,其中可以为多个列表选择单个成员),您只需对列表进行无序排列即可。
一旦
然后分成三部分。这样,您将得到三个不共享任何项的随机子集:
>>> random.shuffle(listt)
>>> list[0:5]
>>> listt[0:5]
['b', 'a', 'f', 'e', 'h']
>>> listt[5:10]
['c', 'm', 'g', 'j', 'o']
>>> listt[10:15]
['d', 'l', 'i', 'n', 'k']
注意
random.shuffle
将重新排列列表,以便修改原始列表。如果不想修改原始列表,应该先复制一份。
如果您的列表大于期望的结果集,那么当然也可以对列表进行采样。
一旦
使用组合结果大小,然后相应地拆分结果:
>>> sample = random.sample(listt, 5 * 3)
>>> sample[0:5]
['h', 'm', 'i', 'k', 'd']
>>> sample[5:10]
['a', 'b', 'o', 'j', 'n']
>>> sample[10:15]
['c', 'l', 'f', 'e', 'g']
此解决方案还将避免修改原始列表,因此如果希望保持原样,则不需要副本。