Выполнение:
y=[[1]]
y=y*2
создает список с двумя ссылками на тот же объект списка:
>>> y=[[1]]
>>> y=y*2
>>> id(y[0]) # The id of the first element...
28864920
>>> id(y[1]) # ...is the same as the id of the second.
28864920
>>>
Это означает, что при изменении одной из них будет затронута и другая.
Чтобы устранить эту проблему, вы можете использовать вместо list comprehension:
>>> y = [[1] for _ in xrange(2)] # Use range here if you are on Python 3.x
>>> y
[[1], [1]]
>>> id(y[0]) # The id of the first element...
28864920
>>> id(y[1]) # ...is different from the id of the second.
28865520
>>> y[0].append(2)
>>> y
[[1, 2], [1]]
>>>
закрыть это, тогда люди - спасибо всем за ссылки и ответы – whytheq