This is my code:
a = [[]] * 10
a[0].append(1)
print a # Outputs [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
How can I get a to output
[[1], [], [], [], [], [], [], [], [], []]
?
This is my code:
a = [[]] * 10
a[0].append(1)
print a # Outputs [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
How can I get a to output
[[1], [], [], [], [], [], [], [], [], []]
?
Try
a=[[] for i in xrange(10)]
In your code you're adding the same list 10 times. The following output should clarify this:
>>> a=[[]] * 5
>>> for i in a: print id(i)
...
155302636
155302636
155302636
155302636
155302636
>>> a=[[] for i in xrange(5)]
>>> for i in a: print id(i)
...
155302668
155302732
155302924
155303020
155303052
As you can see, in the first example a contains 5 times a reference to the same array object, in the second example it contains references to 5 different array objects.