Python 名单是「;“已连接”;没有我要求他们

Python 名单是「;“已连接”;没有我要求他们,python,pygame,Python,Pygame,我正在使用pygame进行纸牌游戏,我制作了一个变量Deck,然后我制作了另一个变量DeckRep,以存储从中取出纸牌之前的Deck外观。在代码开始时,我运行了DeckRep=Deck,之后就不再运行了 然而,在代码运行之后,卡片已经从卡片组中取出,这两个变量仍然是相同的 当卡片从卡片组中移除时,它们也从DeckRep中移除,我已经用打印命令测试过,它不会多次运行DeckRep=Deck 请帮助我与其他一些语言不同,Python中的=不会复制。最终,同一对象有两个名称,对其中一个的更改将显示在另

我正在使用
pygame
进行纸牌游戏,我制作了一个变量
Deck
,然后我制作了另一个变量
DeckRep
,以存储从中取出纸牌之前的
Deck
外观。在代码开始时,我运行了
DeckRep=Deck
,之后就不再运行了

然而,在代码运行之后,卡片已经从卡片组中取出,这两个变量仍然是相同的

当卡片从卡片组中移除时,它们也从
DeckRep
中移除,我已经用打印命令测试过,它不会多次运行
DeckRep=Deck


请帮助我

与其他一些语言不同,Python中的
=
不会复制。最终,同一对象有两个名称,对其中一个的更改将显示在另一个对象中

要制作副本,您需要明确说明。对于列表,制作副本的最简单方法是切片:

DeckRep=Deck[:]

与其他一些语言不同,Python中的
=
不会复制。最终,同一对象有两个名称,对其中一个的更改将显示在另一个对象中

要制作副本,您需要明确说明。对于列表,制作副本的最简单方法是切片:

DeckRep=Deck[:]

这将被标记为重复,但简单的回答是,您只是对内存中的同一列表进行了两个不同的引用。将列表分配给列表是按引用复制,您的“两个列表”指向同一个列表对象。使用
DeckRep=list(Deck)
。当然,这只是做同样事情的语法选项之一,即根据现有列表的内容创建一个新列表。可能重复的Thanke you so much请阅读Python如何处理赋值;您只是将另一个标签添加到一个对象,而不是复制。这将被标记为重复,但简单的回答是您只是对内存中的同一列表进行了两个不同的引用。将列表指定给列表是按引用复制,您的“两个列表”指向同一个列表对象。使用
DeckRep=list(Deck)
。当然,这只是做同样事情的语法选项之一,即根据现有列表的内容创建一个新列表。可能重复的Thanke you so much请阅读Python如何处理赋值;您只是将另一个标签添加到对象,而不是复制。不适用于lists@SuperStew没错。我说的是最简单,我没说最防弹。在没有看到实际代码的情况下,我猜这将是解决这个问题的一个适当的解决方案。不抄袭的要点仍然存在,并且是答案中最重要的部分。我认为这是公平的,我不适用于抄袭清单lists@SuperStew没错。我说的是最简单,我没说最防弹。在没有看到实际代码的情况下,我猜这将是解决这个问题的一个适当的解决方案。不复制的要点仍然存在,并且是答案中最重要的部分。我认为这很公平