] Я хочу понять, почему происходит следующее. Я предполагаю, что временный файл создается во время итерации списка, но хочу, чтобы некоторые эксперты подтвердили это:
def test():
a=[set([1,2,3]),set([3,4,5])]
x=set([1,4])
for i in a:
# doesn't actually modify list contents, making a copy of list elements in i?
i=i.difference(x)
print a
for idx,i in enumerate(a):
i=i.difference(x)
print id(i),id(a[idx])
# obviously this modifies the contents
a[idx]=i
print a
Вывод:
[set([1, 2, 3]), set([3, 4, 5])]
59672976 59672616
59672616 59672736
[set([2, 3]), set([3, 5])]
Кроме того, я хочу понять, почему "id " of i во второй итерации совпадает с "id" для a[0].