不明白为什么2D列表元素被赋予相同的值

2024-04-25 21:50:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着把牌交给两只手(每只手都放在一张单子里)。手放在第二张单子里。但是玩家1的牌和玩家2的牌完全一样,好像我的外部列表中有一个重复列表。这是因为易变性吗

代码剪贴应该有助于解释。救命啊!我做错了什么?我怎样才能纠正它

代码

no_of_cards_each = 3
no_of_players = 2
cards = ["AH", "2H", "3H", "4H", "5H", "6H", "7H"]
player_hands = []

for _ in range(no_of_players):
    player_hands.append([])

print(f"Empty hands = {player_hands}")

for card_num in range(no_of_cards_each):
    print(f"Card Num is {card_num}")
    for player_num in range(no_of_players):
        print(f"Player number is {player_num}")
        next_card = cards.pop(0)
        player_hands[player_num].append(next_card)
        print(f"Player number {player_num} got dealt a {next_card}")

print(f"The final hands look like {player_hands}")

输出

Empty hands = [[], []]
Card Num is 0
Player number is 0
Player number 0 got dealt a AH
Player number is 1
Player number 1 got dealt a 2H
Card Num is 1
Player number is 0
Player number 0 got dealt a 3H
Player number is 1
Player number 1 got dealt a 4H
Card Num is 2
Player number is 0
Player number 0 got dealt a 5H
Player number is 1
Player number 1 got dealt a 6H

最后的手看起来像[['AH', '3H', '5H'], ['2H', '4H', '6H']]

进程已完成,退出代码为0


Tags: ofnonumberiscardnumcardsplayer
2条回答

哇!对不起的。经过几天的努力,当我重新格式化代码将问题粘贴到这里时,它开始按预期工作。我想有时候当你放弃的时候,代码终于开始工作了。我应该在发帖前看最后一次结果。抱歉浪费你的时间

我应该撤回这个问题(如果可能的话)还是把它留在这里?如果没有其他内容,对于其他面临2D列表问题的人来说,它可能是一个有用的代码片段:)

玩家一不是有['AH'、'3H'、'5H'],玩家二不是有['2H'、'4H'、'6H']? 你说他们的牌一样是什么意思

相关问题 更多 >