python itertools:如何滚动N骰子?

时间:2016-09-08 21:10:24

标签: python itertools

我可以使用这样的循环遍历1,2或3个6面骰子的所有组合:

for a in range(1, 7):  # one die
  sum = a
  dosomething(sum)

for a in range(1, 7):  # two dice
  for b in range(1, 7):
    sum = a + b
    dosomething(sum)

for a in range(1, 7):    # three dice
  for b in range(1, 7):
    for c in range(1, 7):
      sum = a + b + c
      dosomething(sum)

如何使用itertools为N dice做这个?

1 个答案:

答案 0 :(得分:4)

这是itertools.product的用途。

for dice in itertools.product(range(1, 7), repeat=N):
    dosomething(sum(dice))