Временное создание во время итерации списка Python?

] Я хочу понять, почему происходит следующее. Я предполагаю, что временный файл создается во время итерации списка, но хочу, чтобы некоторые эксперты подтвердили это:

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].

5
задан Sid 21 March 2012 в 15:37
поделиться