python问题列表

python问题列表,python,python-2.7,list,Python,Python 2.7,List,打印后,我得到了这个: list= [] x = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] for i in range(2): list.append(x) list[0][0]="x" print list 每个列表中的第一项都被“x”替换,而我只希望第一个列表中的第一项被“x”替换(因此行列表[0][0]=“x”)行列表。追加(x)在列表中添加对x的引用。两个子列表最终都指向同一个对象(正如x)。事实上,执行x[0]='x'将产

打印后,我得到了这个:

list= []

x = ['A', 'B', 'C', 'D', 'E', 'F', 'G']

for i in range(2):

          list.append(x)

list[0][0]="x"

print list

每个列表中的第一项都被“x”替换,而我只希望第一个列表中的第一项被“x”替换(因此行列表[0][0]=“x”)

列表。追加(x)
列表中添加对
x
的引用。两个子列表最终都指向同一个对象(正如
x
)。事实上,执行
x[0]='x'
将产生与
list[0][0]='x'
完全相同的效果。要使子列表独立,请通过执行
list.append(x.copy())
list.append(x[:])

进行复制。这必须是一个重复您将同一列表添加到另一个列表中两次:
list.append(x)
。然后,您可以更改该列表。列表列表中只有一个唯一的列表对象。
[['x', 'B', 'C', 'D', 'E', 'F', 'G'], ['x', 'B', 'C', 'D', 'E', 'F', 'G']]