python - 2D list has weird behavor when trying to modify a single value -
possible duplicate:
unexpected feature in python list of lists
so relatively new python , having trouble working 2d lists.
here's code:
data = [[none]*5]*5 data[0][0] = 'cell a1' print data and here output (formatted readability):
[['cell a1', none, none, none, none], ['cell a1', none, none, none, none], ['cell a1', none, none, none, none], ['cell a1', none, none, none, none], ['cell a1', none, none, none, none]] why every row assigned value?
this makes list 5 references same list:
data = [[none]*5]*5 use instead creates 5 separate lists:
>>> data = [[none]*5 _ in range(5)] now expect:
>>> data[0][0] = 'cell a1' >>> print data [['cell a1', none, none, none, none], [none, none, none, none, none], [none, none, none, none, none], [none, none, none, none, none], [none, none, none, none, none]]
Comments
Post a Comment