当我只更改一个时,Python 填充二维列表(或数组)的所有元素

标签 python arrays list

<分区>

Possible Duplicate:
Python : how to append new elements in a list of list?

我在 Python 中想到了这种(对我来说)非常奇怪的行为。

我有一个空的二维列表(如果您愿意,也可以是数组),当我向其中一列添加元素时,所有其他列都会获得相同的附加值。

代码如下:

row = [1, 2, 3, 4]
yChannel = 4*[[]]

sectorPlace = 0
for sector in yChannel:
    sector.append(row[sectorPlace])
    sectorPlace += 1

print yChannel

输出:

[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]

最佳答案

yChannel 包含同一列表的 4 个副本。比较你拥有的:

yChannel = [[], [], [], []]

关于当我只更改一个时,Python 填充二维列表(或数组)的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314444/

相关文章:

python - 使用其他行中的值将函数应用于 pandas 数据框行

python - 如何使用 Python 检查 NIFTI 图像是否处于正确的方向/位置

arrays - 测试索引超出范围golang

c - 二维字符串数组中第一个元素的值在 fork 后意外更改

php - 在逗号分隔的文件中用引号封装文本

python - Py Mechanize 使用经过身份验证的用户提交更多数据

python - 如何绘制一棵以 id 作为节点标签的树

ios - 使用 Swift : Can't access all objects of an array after For loop 的数组问题

algorithm - 在列表中查找最低未使用的唯一 ID

python - 如何不改变 Python 中的嵌套列表?