Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么python附加了两个变量而不是一个?_Python_List - Fatal编程技术网

为什么python附加了两个变量而不是一个?

为什么python附加了两个变量而不是一个?,python,list,Python,List,这是我对问题的再现: 卡片=['10S'、['9S']、['5H'、['JD']] 双手=[] 对于卡中的x: 手.附录 打印手-['10S',9S',['5H',JD']] 打印卡-['10S'、['9S']、['5H'、['JD']] 手[0]。追加KKK 打印手-['10S',9S',KKK',['5H',JD']] 打印卡-['10S',9S',KKK'],['5H',JD']???? 很简单:Hands.appendx没有复制任何东西,只是添加了引用 将上述内容与以下内容进行比较: 卡

这是我对问题的再现:

卡片=['10S'、['9S']、['5H'、['JD']] 双手=[] 对于卡中的x: 手.附录 打印手-['10S',9S',['5H',JD']] 打印卡-['10S'、['9S']、['5H'、['JD']] 手[0]。追加KKK 打印手-['10S',9S',KKK',['5H',JD']] 打印卡-['10S',9S',KKK'],['5H',JD']???? 很简单:Hands.appendx没有复制任何东西,只是添加了引用

将上述内容与以下内容进行比较:

卡片=['10S'、['9S']、['5H'、['JD']] 双手=[] 对于卡中的x: 这是一份复印件 打印手-['10S',9S',['5H',JD']] 打印卡-['10S'、['9S']、['5H'、['JD']] 手[0]。追加KKK 打印手-['10S',9S',KKK',['5H',JD']] 打印卡-['10S'、['9S']、['5H'、['JD']]
你必须提供一份工作。几乎可以肯定的是,这是因为两个变量都指向同一个对象。为什么这有字典标签?回答了你的问题吗?@YevhenKuzmovych,它没有帮助。我得到了同样的结果。我把代码改成了可复制的。你能帮我查一下吗?谢谢。根据@quamrana的答案和我发布的链接中的答案,你需要在添加时深度复制你的列表。例如,self.Hands.appendx[:]或self.Hands.appendlistx。与我相同,但当我在课堂形式中执行相同操作时,手和卡片都会被KKK项附加。我不明白为什么,为了我的生命。所以你需要一种复制你的实例的方法。我修复了代码,使其可复制。你能检查一下你是否能帮忙吗。谢谢。深度复制修复了它。来自@Yevhen Kuzmovych的建议。也非常感谢。
class PokerGame:
    def __init__(self):
        self.Cards = [['A', 'Q'], ['K', '10']]
        self.Hands = []


    def Play(self):
        print(self.Hands) # []
        print(self.Cards) # [['A', 'Q'], ['K', '10']]
        for x in self.Cards:
            self.Hands.append(x) 
        print(self.Hands) # [['A', 'Q'], ['K', '10']]
        print(self.Cards) # [['A', 'Q'], ['K', '10']]
        self.Hands[0].append("KKK")
        print(self.Hands) # [['A', 'Q', 'KKK'], ['K', '10']]
        print(self.Cards) # [['A', 'Q', 'KKK'], ['K', '10']]???

b = PokerGame()
b.Play()