In [38]: s = 'ab' In [39]: it = iter(s) In [40]: it Out[40]: <iterator at 0x1068e6d50> In [41]: print it <iterator object at 0x1068e6d50> In [42]: it.next() Out[42]: 'a' In [43]: it.next() Out[43]: 'b' In [44]: it.next() --------------------------------------------------------------------------- StopIteration Traceback (most recent call last) <ipython-input-44-54f0920595b2> in <module>() ----> 1 it.next() StopIteration:
class Reverse:
"""Iterator for looping over a sequence backwards."""
def __init__(self, data):
self.data = data
self.index = len(data)
def __iter__(self):
return self
def next(self):
if self.index == 0:
raise StopIteration
self.index = self.index - 1
return self.data[self.index]
rev = Reverse('spam')
for char in rev:
print char
[output]
m
a
p
s
def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index]
>>> for char in reverse('golf'):
... print char
...
f
l
o
g
Help on built-in function range in module __builtin__: range(...) range(stop) -> list of integers range(start, stop[, step]) -> list of integers Return a list containing an arithmetic progression of integers. range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0. When step is given, it specifies the increment (or decrement). For example, range(4) returns [0, 1, 2, 3]. The end point is omitted! These are exactly the valid indices for a list of 4 elements. class xrange(object) | xrange(stop) -> xrange object | xrange(start, stop[, step]) -> xrange object | | Like range(), but instead of returning a list, returns an object that | generates the numbers in the range on demand. For looping, this is | slightly faster than range() and more memory efficient. iter()
In [113]: s = 'abc' In [114]: s.next() --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-114-5e5e6532ea26> in <module>() ----> 1 s.next() AttributeError: 'str' object has no attribute 'next' In [115]: it = iter(s) In [116]: it.next() Out[116]: 'a'
In [119]: num = (i for i in range(10)) In [120]: sum(num) Out[120]: 45
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有