Заставьте материализованные надписи перемещаться из поля ввода, когда поле ввода заполняется через JavaScript

Во-первых, я настоятельно рекомендую переименовать вашу переменную list в другое. list - это имя встроенного конструктора списков, и вы скрываете его нормальную функцию. Я буду переименовывать list в a в следующем.

Имена Python - это ссылки , привязанные к объектам. Это означает, что, если вы не создаете несколько списков, всякий раз, когда вы используете a, это относится к тому же самому фактическому объекту списка, что и в последний раз. Поэтому, когда вы вызываете

listoflists.append((a, a[0]))

, вы можете позже изменить a, и он изменит то, на что указывает первый элемент этого кортежа. Это не происходит с a[0], потому что объект (который является целым числом), на который указывает a[0], не изменяется (хотя a[0] указывает на разные объекты во время выполнения вашего кода).

Вы можете создать копию всего списка a с помощью конструктора list:

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

Или вы можете использовать нотацию фрагмента , чтобы сделать копию:

listoflists.append((a[:], a[0]))
13
задан neurodynamic 19 August 2015 в 16:41
поделиться