【发布时间】:2011-06-21 22:44:40
【问题描述】:
我非常喜欢 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 运算符发现的那样,它只是制作惰性副本(请参阅Wikipedia),所以有没有办法说我希望它是一个直接修改的迭代器,而不是使用整洁的迭代器
for variable in iterable_object:
语法?
【问题讨论】:
标签: python iterator sequence immutability