我非常喜欢Python的语法,但作为一个C++程序员,我对Python中的迭代器有些困惑。在C++中,有两种类型的迭代器-常量和修改(非常量)。在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:
语法?