希望返回所有可能的两个骰子。返回值是一个包含元组的列表

我目前正在尝试了解如何在使用任何理解循环之前将两个 for 循环嵌套在一起。我的任务是将每个组合的列表作为元组返回,而不是当我想要 36 个组合的列表时,我收到 6 个列表的列表。


我试图迭代这两个范围。


def build_roll_permutations():

  dice = []

  for i in range(1,7):

    dicee = []

    for j in range(1,7):

      dicee.append((i,j))

    dice.append(dicee)

  return dice

预期成绩:


[(1,1),(1,2)(1,3)...etc]

我的结果:


[[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6)], [(2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6)], [(3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6)], [(4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6)], [(5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6)], [(6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]]



慕桂英4014372
浏览 135回答 2
2回答

鸿蒙传说

只需摆脱dicee并直接附加到dice.def build_roll_permutations():  dice = []  for i in range(1,7):    for j in range(1,7):      dice.append((i,j))  return dice请注意,您可以通过简单的列表理解来做到这一点def build_roll_permuatations():    return [(i,j) for i in range(1,7) for j in range(1,7)]或itertools.product(因为这实际上是一个产品而不是一个排列):def build_rolls():    return list(product(range(1,7), repeat=2))

HUWWW

修改时使用扩展而不是附加dice:def build_roll_permutations():    dice = []    for i in range(1, 7):        dicee = []        for j in range(1, 7):            dicee.append((i, j))        dice.extend(dicee)  # line to fix    return diceprint(build_roll_permutations())输出[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python