我已经查看了几个与该问题类似的答案,并且所有答案似乎都具有很好的oneliner答案,但是仅解决了通过删除重复项使列表唯一的事实。我需要清单精确地有5个。
我唯一能想到的代码是这样的:
from random import \*
tuples = []
while len(tuples) < 5:
rand = (randint(0, 6), randint(0,6))
if rand not in tuples:
tuples.append(rand)
我觉得有一种更简单的方法,但我不知道。我尝试从随机玩sample():
sample((randint(0,6), randint(0,6)), 5)
但这给了我一个“样本大于总体或为负”的错误。
问题来源:stackoverflow
一种快速的方法是使用itertools.product
生成所有元组可能性,然后再使用sample
从中选择5种可能性:
from itertools import product
from random import sample
sample(list(product(range(7), repeat=2)), k=5)
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。