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