Как изменить элементы итераций с помощью итераторов? Т.е. как получить итераторы записи в Python?

Мне очень нравится синтаксис Python, но, поскольку я перехожу с C ++, я ничего не понимаю об итераторах в Python. В C ++ есть 2 вида итераторов - постоянные и изменяющие (неконстантные). В python кажется (для того, что я видел), что есть только первый тип, и если вы хотите изменить элементы, вы должны использовать индексацию, которая не кажется удобной и такой общей для меня. Позвольте мне проиллюстрировать это простым примером:

ab = ["a", "b"]
for (index, lett) in enumerate(ab):
    print "Firstly, lett is ab[index]?", lett is ab[index]
    lett = str(index)
    print lett
    print ab[index]
    print "But after, lett is ab[index]?", lett is ab[index]

Итак, я не смог изменить список с помощью итератора. Он просто создает ленивые копии (см. Википедию ), как я обнаружил с помощью оператора is , так что есть способ сказать, что я хочу, чтобы он был напрямую изменяющим итератором вместо использования аккуратного

for variable in iterable_object:

синтаксис?

5
задан Community 25 August 2014 в 22:11
поделиться