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没错。我说的是最简单,我没说最防弹。在没有看到实际代码的情况下,我猜这将是解决这个问题的一个适当的解决方案。不复制的要点仍然存在,并且是答案中最重要的部分。我认为这很公平