对于字典,我可以使用iter()
迭代字典的键。
y = {"x":10, "y":20}
for val in iter(y):
print val
当我使用下面的迭代器时,
class Counter:
def __init__(self, low, high):
self.current = low
self.high = high
def __iter__(self):
return self
def next(self):
if self.current > self.high:
raise StopIteration
else:
self.current += 1
return self.current - 1
我为什么不能这样用呢
x = Counter(3,8)
for i in x:
print x
也不
x = Counter(3,8)
for i in iter(x):
print x
但这条路呢?
for c in Counter(3, 8):
print c
iter()
函数的用法是什么?补充
我想这可能是使用
iter()
的方法之一。class Counter:
def __init__(self, low, high):
self.current = low
self.high = high
def __iter__(self):
return self
def next(self):
if self.current > self.high:
raise StopIteration
else:
self.current += 1
return self.current - 1
class Hello:
def __iter__(self):
return Counter(10,20)
x = iter(Hello())
for i in x:
print i
最佳答案
所有这些工作都很好,除了打字错误——你可能是说:
x = Counter(3,8)
for i in x:
print i
而不是
x = Counter(3,8)
for i in x:
print x
关于python - Python中的迭代器(iter())函数。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3938927/