Django IntegerField в PostgreSQL получает & ldquo; переполнение числового поля & rdquo; ошибка в 1000

Причина obj += 1 не делает то, что вы ожидаете, так это то, что этот оператор не изменяет obj на месте. Вместо этого он вычисляет новое значение, а переупорядочивает переменную obj, чтобы указать на новое значение. Это означает, что содержимое списка остается неизменным.

В общем случае есть , возможно изменить список, итерации по нему с помощью for obj in myList. Например:

myList = [[1], [2], [3], [4], [5]]
for obj in myList:
  obj[0] += 1
print(myList)

Это выдает:

[[2], [3], [4], [5], [6]]

Разница между этим и вашим первым примером заключается в том, что здесь список содержит mutable объекты, а код изменяет эти объекты на месте.

Обратите внимание, что можно также написать цикл, используя понимание списка:

myList = [val+1 for val in myList]
0
задан user3787031 5 March 2019 в 02:34
поделиться