番号 n の約数を、マスター リストの n 番目の位置に格納されたリストとして取得したいと考えています。たとえば、長さ 11 のふるいでは、sieve[6] == [2,3,6] (1 を無視) が必要です。以下の私のコードは機能せず、不快な方法で私を驚かせます:
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]
それは説明してもらえますか?