Pyhton:list[i].append(x) 添加 x 到 list[i] 和 list[i+1]

问题描述 投票:0回答:1

我用 Python 写了这段代码:

from random import choice as rc
cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 11]
i = 0
player = [[9, 9]]
player[i] = [player[i][0]]
player.append(player[i])
print(player)

现在

player == [[9], [9]]

player[i].append(rc(cards))
print(player)

现在

player == [[9, 10], [9, 10]]

当我打字

player[i].append(rc(cards))
我实际上希望玩家成为

[[9, rc], [9]] #so in this example I would expect [[9, 10], [9]]

rc
是卡片中的随机数,但不知何故我得到了

[[9, rc], [9, rc]] #so in this example i get [[9, 10], [9, 10]]

有谁知道为什么,有人可以帮我改变第一个元素吗?

PS:这是我在这里的第一个问题,所以如果我做错了什么(与问题相关),请告诉我。

python list append
1个回答
1
投票

当你这样做时:

player.append(player[i])

player
的两个元素都是对同一个列表的引用。当您修改列表时,它会反映在两个元素中。您需要复印:

player.append(player[i][:])
© www.soinside.com 2019 - 2024. All rights reserved.