gpt4 book ai didi

python - 尝试修改单个值时,二维列表有奇怪的行为

转载 作者:IT老高 更新时间:2023-10-28 20:34:13 25 4
gpt4 key购买 nike

Possible Duplicate:
Unexpected feature in a Python list of lists

所以我对 Python 比较陌生,并且在使用 2D 列表时遇到了麻烦。

这是我的代码:

data = [[None]*5]*5
data[0][0] = 'Cell A1'
print data

这是输出(为便于阅读而格式化):

[['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None],
['Cell A1', None, None, None, None]]

为什么每一行都被赋值?

最佳答案

这会生成一个列表,其中包含五个对相同列表的引用:

data = [[None]*5]*5

使用类似这样的东西来创建五个单独的列表:

>>> data = [[None]*5 for _ in range(5)]

现在它可以满足您的期望:

>>> data[0][0] = 'Cell A1'
>>> print data
[['Cell A1', None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None],
[None, None, None, None, None]]

关于python - 尝试修改单个值时,二维列表有奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2739552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com