Мой вопрос касается следующего для цикла:
x=[[1,2,3],[4,5,6]]
for v in x:
v=[0,0,0]
здесь, если вы напечатаете x, вы получите [[1,2,3], [4,5,6]] .. так что vизменено на самом деле не ссылка на список в х.Но когда вы делаете что-то вроде следующего:
x=[[1,2,3],[4,5,6]]
for v in x:
v[0]=0; v[1]=0; v[2] =0
, тогда вы получаете x как [[0,0,0], [0,0,0]].Это довольно сложно, если список внутри x довольно длинный и даже делает что-то вроде этого:
x=[[1,2,3],[4,5,6]]
for v in x:
for i in v:
i = 0
даст мне x как [[1,2,3], [4,5,6]].Лучше всего использовать для i в xrange (0,3): v [i] = 0 .. Хотя я все еще хотел бы знать, что здесь происходит и каковы другие альтернативы, когдаиметь список списков или больше вложенных списков.