I wish to get divisors of number n as a list stored in a master list at nth position. For example the sieve of length 11, I want sieve[6] == [2,3,6] (ignoring 1). My code below does not work and surprises me in an unpleasant way:
sieve = [[]]*11
sieve[1] = [1]
for i in range(2,11):
for j in range(i,11,i):
sieve[j].append(i)
print ("appended", i ," at sieve",j)
# This check-print statement shows that it works fine until sieve is printed.
print (sieve)
sieve[6] turns out to be : [2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10]
Can that be explained please?