我正在尝试将卡发给两只手(每只手都放在一张列表中)。双手握在第二张表中。但是,玩家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。
答案 0 :(得分:0)
玩家1是否没有['AH','3H','5H'],而玩家2是否具有['2H','4H','6H']? 你的卡是什么意思
答案 1 :(得分:0)
哇!抱歉。经过几天的努力,当我重新格式化代码以将问题粘贴到这里时,它开始按预期工作。我想有时候代码刚开始起作用的时候就已经放弃了。我应该在发布前最后一次查看结果。抱歉浪费您的时间。
我应该撤回该问题(如果可能)还是将其留在这里?如果没有其他问题,对于其他遇到2D列表问题的人来说,这可能是一个有用的代码段:)