pg_stat_statements включен, но таблица не существует

Списки являются изменяемыми типами - для создания копии (а не просто прохождения одного и того же списка) вам нужно сделать это явно:

    listoflists.append((list[:], list[0]))

Однако list уже имя встроенного Python - было бы лучше не использовать это имя для вашей переменной. Вот версия, которая не использует list в качестве имени переменной и делает копию:

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

Обратите внимание, что я продемонстрировал два разных способа сделать копию списка выше: [:] и list().

Первый, [:], создает срез (обычно часто используемый для получения только части списка), который, как бывает, содержит весь список и, следовательно, фактически является копией списка.

Второй, list(), использует фактический конструктор list type для создания нового списка, который имеет содержимое, равное первому списку. (Я не использовал его в первом примере, потому что вы переписывали это имя в свой код, что является хорошим примером того, почему вы этого не хотите!) [/ ​​G6]

13
задан Hett 24 June 2015 в 08:12
поделиться