2015-01-07 3 views
1

Я использую это, чтобы создать матрицу 4x4 «х»:?простой п х п матрица питона не работает

listof=[] #table 
nic=[] #row 
max = 4 #tabele size 
nic = ['x']*max #row of x-es 
listof = [nic]*max #table of rows 
print(listof) #it looks ok 
listof[1][1] ="o" #changing one x to o 
print(listof) # wrong since all rows have o on index 1 

как пришел?

BTW: Я знаю, что это работает, если я использую:

listof = [["x" for x in range(max)] for y in range(max)] 

Но что случилось с выше код? Благодаря

ответ

1

Проблема состоит в том, что listof заканчивается, состоящий из четырех ссылок в том же списке. В результате при изменении элемента в одной строке он изменяется во всех строках.