Я обнаружил, что при выполнении for
цикл над списком изменяемых элементов Я не могу изменить этот элемент, однако я могу изменить элемент этого элемента, если этот элемент изменен. Зачем?Невозможно изменить элемент списка внутри цикла цикла
# Create alist which contain mutable
alist = [[1, 2, 3],]
#1 For loop
for x in alist:
x = x + [9,]
print alist
# let's replace alist[0] to list which contain another one and try to modify it
alist[0] = [[[1,2],3]]
print2 alist # [[[[1, 2], 3]]]
#2 For loop
for x in alist:
x[0] = x[0] + [9,]
# list modified ...
print alist # [[[[1, 2], 3, 9]]], Modified !
Я знаю, что список, который вы итерация на модификации не является хорошей практикой (лучше перебрать копию), поэтому, пожалуйста, не указывайте мне на этот момент.
взглянуть на этот HTTP: //stackoverflow.com/questions/2022031/python-append-vs-operator-on-lists-why-do-these-give-different-results. – AKS
@AKS спасибо, посмотрим на это –