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']]