有没有更好的方法:
perms = product(range(1,7),range(1,7),range(1,7))
以便我可以选择我使用的范围? 我希望它与此等效,但可扩展。
def dice(num)
if num == 1:
perms = ((i,) for i in range(1,7))
elif num == 2:
perms = product(range(1,7),range(1,7))
elif num == 3:
perms = product(range(1,7),range(1,7),range(1,7))
#... and so on
但我知道必须有更好的方法。 我用它来计算骰子结果。 实际代码
def dice(selection= lambda d: d[2]):
perms = itertools.product(range(1,7),range(1,7),range(1,7))
return collections.Counter(((selection(sorted(i)) for i in perms)))
我可以用各种选择器来调用它,例如 sum(d[0:2])
用于最小 2 个骰子的总和或 d[1]
得到中间的骰子。
最佳答案
关于python - Python 中的多范围产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2718029/