为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英4014372 2022-06-14 10:47:39
我目前正在尝试了解如何在使用任何理解循环之前将两个 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)]]
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

只需摆脱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))


查看完整回答
反对 回复 2022-06-14
?
HUWWW

TA贡献1874条经验 获得超12个赞

修改时使用扩展而不是附加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 dice



print(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)]



查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信