python中 iter,Python中的迭代器(iter())函数。

For dictionary, I can use iter() for iterating over keys of the dictionary.

y = {"x":10, "y":20}

for val in iter(y):

print val

When I have the iterator as follows,

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

Why can't I use it this way

x = Counter(3,8)

for i in x:

print x

nor

x = Counter(3,8)

for i in iter(x):

print x

but this way?

for c in Counter(3, 8):

print c

What's the usage of iter() function?

ADDED

I guess this can be one of the ways of how iter() is used.

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

解决方案

All of these work fine, except for a typo--you probably mean:

x = Counter(3,8)

for i in x:

print i

rather than

x = Counter(3,8)

for i in x:

print x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值