>>> iter([1,2,3])
<listiterator object at 0x026C8970>
>>> iter({1:2, 2:4})
<dictionary-keyiterator object at 0x026CC1B0>
>>> iter(1234)
Traceback (most recent call last):
File "<pyshell#145>", line 1, in <module>
iter(1234)
TypeError: 'int' object is not iterable
class String(object):
def __init__(self, val):
self.val = val
def __str__(self):
return self.val
st = String('sample string')
>>> iter(st) TypeError: 'String' object is not iterable
class String(object):
def __init__(self, val):
self.val = val
def __str__(self):
return self.val
def __iter__(self):
print "This is __iter__ method of String class"
return iter(self.val) #self.val is python string so iter() will return it's iterator
>>> st = String('Sample String')
>>> iter(st)
This is __iter__ method of String class
<iterator object at 0x026C8150>
class String(object):
def __init__(self, val):
self.val = val
def __str__(self):
return self.val
def __getitem__(self, index):
return self.val[index]
>>> st = String('Sample String')
>>> iter(st)
<iterator object at 0x0273AC10>
for x in iterable: print x
def iterate_while(iterable):
index = 0
while(i< len(iterable)):
print iterable[i]
i +=1
def simulate_for_loop(iterable): it = iter(iterable) while(True): try: print next(it) except StopIteration: break >>> simulate_for_loop([23,12,34,56]) 23 12 34 56
class Iterator:
def __init__(self, iterable)
self.iterable = iterable
.
.
def __iter__(self): #iter should return self if called on iterator
return self
def next(self): #Use __next__() in python 3.x
if condition: #it should raise StopIteration exception if no next element is left to return
raise StopIteration
class list_iter(object):
def __init__(self, list_data):
self.list_data = list_data
self.index = 0
def __iter__(self):
return self
def next(self): #Use __next__ in python 3.x
if self.index < len(self.list_data):
val = self.list_data[self.index]
self.index += 1
return val
else:
raise StopIteration()
class List(object):
def __init__(self, val):
self.val = val
def __iter__(self):
return list_iter(self.val)
>>> ls = List([1,2,34])
>>> it = iter(ls)
>>> next(it)
1
>>> next(it)
2
>>> next(it)
34
>>> next(it)
Traceback (most recent call last):
File "<pyshell#254>", line 1, in <module>
next(it)
File "<pyshell#228>", line 13, in next
raise StopIteration()
StopIteration
>>> x = xrange(10) >>> type(x) <type 'xrange'>
>>> iter(xrange(10)) <rangeiterator object at 0x0264EFE0>
class xrange_iter(object):
def __init__(self, num):
self.num = num
self.start = 0
def __iter__(self):
return self
def next(self):
if self.start < self.num:
val = self.start
self.start += 1
return val
else:
raise StopIteration()
class my_xrange(object):
def __init__(self, num):
self.num = num
def __iter__(self):
return xrange_iter(self.num)
>>> for x in my_xrange(10):
print x,
0 1 2 3 4 5 6 7 8 9
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有