列表创建异常:生成了多余层级的嵌套列表
解决多米诺列表嵌套层级冗余的问题
嘿,这问题很常见!你之所以会多一层嵌套,肯定是往donnes列表添加元素的时候,给liste_dominos额外套了一层括号。
问题出在哪?
举个具体的例子,假设你写了这样的代码:
# 你的多米诺骨牌列表 liste_dominos = [[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]] donnes = [] # 这里错误地给liste_dominos套了一层[] donnes.append([liste_dominos])
这就会导致donnes里的元素变成[[[5,3], ...]]——比你预期的多了最外层那层括号。
而你想要的是把liste_dominos本身作为一个元素放进donnes里,不需要额外包装。
怎么修复?
只需要去掉添加时的额外括号就行,比如:
# 两个玩家的多米诺列表 player1_dominos = [[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]] player2_dominos = [[2, 1], [6, 5], [6, 4], [3, 0], [3, 3], [3, 2]] donnes = [] # 直接追加原列表,不额外套层 donnes.append(player1_dominos) donnes.append(player2_dominos)
现在打印donnes,就会得到你想要的结果:
[[[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]], [[2, 1], [6, 5], [6, 4], [3, 0], [3, 3], [3, 2]]]
之后你访问每位玩家的骨牌列表就正常了——donnes[0]就是第一个玩家的所有骨牌,donnes[1]对应第二个玩家,完全不会再有异常。
如果是用循环批量处理多个玩家的骨牌列表,也要记住:直接把每个玩家的骨牌列表追加到donnes里,不要给它再包一层列表。
内容的提问来源于stack exchange,提问作者Nore
相关产品推荐
相关产品推荐

