Мне очень нравится синтаксис 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:
синтаксис?