1.迭代器
迭代器是一个能够记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到全部的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象均可用于建立迭代器:
list = [1, 2, 3]
it = iter(list)# 建立迭代器对象
print(next(it))# 输出迭代器的下一个元素
print(next(it))
print(next(it))
print(next(it))
结果:
Traceback (most recent call last):
File "D:/PycharmProjects/Login_selenium/Other.py", line 6, in
print(next(it))
StopIteration
1
2
3
该next()方法每次返回的就是新的一行的内容,到达文件结尾时举出StopIteration
import sys # 引入 sys 模块
list = [1, 2, 3, 4]
it = iter(list) # 建立迭代器对象
while True:
try:
print(next(it))
except StopIteration:
sys.exit()函数
2.生成器
生成器(generator)的主要目的是构成一个用户自定义的循环对象。
生成器的编写方法和函数定义相似,只是在return的地方改成yield。生成器中能够有多个yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值
def gen():
a = 100
yield a
a = a*8
yield a
yield 1000
for i in gen():
print(i)
结果:
100
800
1000对象
3.表推导
表推导(list comprehension)是快速生成表的方法。它的语法简单,颇有实用价值
L = []
for x in range(10):
L.append(x**2)ip
表推导的方式:字符串
L = [x**2 for x in range(10)]
print(L)generator
结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]selenium
xl = [1, 3, 5]
yl = [9, 12, 13]
L = [x**2 for (x, y) in zip(xl, yl) if y > 10]
print(L)it