python - 修改一个元素会修改Python中的整列

标签 python list python-2.7

x = raw_input("")
y = raw_input("")
a = []  
b = []
count = 1

for i in range(0, int(y)):
    b.append(count)
    count+=1

for i in range(0, int(x)):
    a.append(b)

for i in a:
    print ""
    for j in i:
        print j, 

a[1][1] = 0



for i in a:
    print ""
    for j in i:
        print j, 

a 是通过向其追加列表“b”n 次而创建的 现在,当我修改 a[1][1] 时,a[0][1] - a[n][1] 的整个列将被修改为该值

谁能解释一下为什么会发生这种情况

最佳答案

每次追加b时,您都在追加同一个列表——不是列表的副本,而是对同一个对象的多个引用。如果您希望每一行都是不同的列表,则需要通过执行 a.append(b[:]) 每次附加一个列表。

关于python - 修改一个元素会修改Python中的整列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23693858/

相关文章:

java - 使用重复的对象流式传输distinct()

python-2.7 - 带有颜色图 matplotlib 的堆栈图

python - 将精度作为参数传递给 python 格式

python - 检查域名是否注册

python - 在新的多索引级别下连接 Pandas 列

Python-将列表的列表映射到字典

列表中的 VB.NET If-Else

Python pip 说 : pkg_resources. DistributionNotFound : pip==1. 4.1

java - 如何设置环境变量PATH以同时使用JAVA和Python

python - 通过 Google Sheets API 和 Python 阅读 Sheet 2