Python: список списков

Выполнение кода

listoflists = []
list = []
for i in range(0,10):
    list.append(i)
    if len(list)>3:
        list.remove(list[0])
        listoflists.append((list, list[0]))
print listoflists

возвращается

[([7, 8, 9], 0), ([7, 8, 9], 0), ([7, 8, 9], 0), ([7, 8, 9], 1), ([7, 8, 9], 2), ([7, 8, 9], 3), ([7, 8, 9], 4), ([7, 8, 9], 5), ([7, 8, 9], 6), ([7, 8, 9], 7)]

так что каким-то образом первый аргумент каждого кортежа (списка) обновляется каждый раз в списке списков, а второй аргумент list [0] - нет. Может ли кто-нибудь объяснить, что здесь происходит, и предложить способ исправить это? Я хотел бы вывести

[([0],0), ([0,1],0), ...

Ответы на вопрос(7)

Ваш ответ на вопрос