python itertools:如何掷 N 个骰子?

python itertools: How to roll N dice?

我可以使用如下循环遍历 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 个骰子执行此操作?

这就是 itertools.product 的用途。

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