Python 3.x 为什么hit()方法会附加所有指针

Python 3.x 为什么hit()方法会附加所有指针,python-3.x,Python 3.x,.com/bIwv6.png 使用Python开发21点游戏。我的问题是,为什么在测试hit()方法时,会附加所有玩家的手,而不仅仅是“Abi”?你的问题在于如何创建手 hand_holder=[[]]*7 印刷品(手持式) 手持器[0]。追加(“测试”) 印刷品(手持式) 这将创建一个列表并将其复制,这样您就有了同一个列表的7个副本。因此,更改1将更改它们,因为它们都是相同的列表 输出 [[], [], [], [], [], [], []] [['test'], ['test'], ['

.com/bIwv6.png


使用Python开发21点游戏。我的问题是,为什么在测试hit()方法时,会附加所有玩家的手,而不仅仅是“Abi”?

你的问题在于如何创建手

hand_holder=[[]]*7
印刷品(手持式)
手持器[0]。追加(“测试”)
印刷品(手持式)
这将创建一个列表并将其复制,这样您就有了同一个列表的7个副本。因此,更改1将更改它们,因为它们都是相同的列表

输出

[[], [], [], [], [], [], []]
[['test'], ['test'], ['test'], ['test'], ['test'], ['test'], ['test']]
[[], [], [], [], [], [], []]
[['test'], [], [], [], [], [], []]
相反,你应该为每个玩家创建新的列表,这样更新一个不会影响其他玩家

hand_holder=[[]用于范围内(7)]
印刷品(手持式)
手持器[0]。追加(“测试”)
印刷品(手持式)
输出

[[], [], [], [], [], [], []]
[['test'], ['test'], ['test'], ['test'], ['test'], ['test'], ['test']]
[[], [], [], [], [], [], []]
[['test'], [], [], [], [], [], []]

请不要将代码作为图像发布。另请参阅文章-如何就stackoverflow(谷歌)提出一个好问题谢谢,Rafael。我将阅读这篇文章并相应地转载。