Python正課39 迭代器

2022-01-30 05:17:34 字數 2005 閱讀 7209

l=['egon','liu','alex']

i=0while i < len(l):

print(l[i])

i+=1

s1=''

# s1.__iter__()

l=# l.__iter__()

t=(1,)

# t.__iter__()

d=# d.__iter__()

set1=

# set1.__iter__()

with open('a.txt',mode='w') as f:

# f.__iter__()

pass

d=

d_iterator=d.__iter__()

# print(d_iterator)

# print(d_iterator.__next__())

# print(d_iterator.__next__())

# print(d_iterator.__next__())

# print(d_iterator.__next__()) # 丟擲異常stopiteration

while true:

try:

print(d_iterator.__next__())

except stopiteration:

break

print('====>>>>>>') # 在乙個迭代器取值取乾淨的情況下,再對其取值娶不到

d_iterator=d.__iter__()

while true:

try:

print(d_iterator.__next__())

except stopiteration:

break

l=[1,2,3,4,5]

l_iterator=l.__iter__()

while true:

try:

print(l_iterator.__next__())

except stopiteration:

break

("可以轉換成迭代器的物件"):內建有__iter__方法物件

可迭代物件.__iter__(): 得到迭代器物件

內建有__next__方法並且內建有__iter__方法的物件

迭代器物件.__iter__():得到迭代器的本身,說白了調了跟沒調乙個樣子

dic=

dic_iterator=dic.__iter__()

print(dic_iterator is dic_iterator.__iter__().__iter__().__iter__())

s1=''

s1.__iter__()

l=l.__iter__()

t=(1,)

t.__iter__()

d=d.__iter__()

set1=

set1.__iter__()

with open('a.txt',mode='w') as f:

f.__iter__()

f.__next__()

# 1.d.__iter__()得到乙個迭代器物件

# 2.迭代器物件.__next__()拿到乙個返回值,然後將該返回值賦值給k

# 3.迴圈往復步驟2,直到丟擲stopiteration異常for迴圈會捕捉異常然後結束迴圈

d=for k in d:

print(k)

with open('a.txt',mode='rt',encoding='utf-8') as f:

for line in f: # f.__iter__()

print(line)

list('hello') #原理同for迴圈

python 迭代器 python迭代器

迭代器 可以直接作用for迴圈的資料型別 我們已經知道,可以直接作用for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function 可迭代物件定義 這些可以直接作用fo...

Python正課38 有參裝飾器

def outter func func 函式的記憶體位址 res func args,kwargs return res outter outter index def index x,y print x,y def auth func,db type name input your name s...

python的迭代器 Python 迭代器

迭代器 迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可迭代物件 以直接作用於 for 迴圈的資料型別有以下幾種 一類是集合資料型別,如 list tuple dict set str 等...