日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python迭代器举例_如何最简单、通俗地理解Python的迭代器?

發布時間:2024/7/23 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python迭代器举例_如何最简单、通俗地理解Python的迭代器? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、什么是迭代器

迭代器 指的是迭代取值的工具,迭代是一個重復的過程,

每次重復都是基于上一次的結果而繼續的,

單純的重復并不是迭代。

比如:A+B生育了C, C+D=>E,生育過程是迭代,

克隆就不是迭代。

2、為何要有迭代器

迭代器是用來迭代取值的工具,而涉及到把多個值循環取出來的類型有:

列表、字符串、元組、字典、集合、打開的文件對象

實現一個簡單的迭代取值功能(基于索引)

list001 = ["abc", "bbc", "cba", "bbq"]

i = 0

while i < len(list001):

print(list001[i])

i += 1

上面這種迭代取值的方式只適用于有索引的數據類型:列表,字符串,字典

為了解決基于索引迭代取值的局限性,python必須提供一種能夠不依賴索引的取值方式,這就是迭代器

首先,了解一下“可迭代對象”:可以轉換成“迭代器”的對象

可迭代對象:但凡內置有 _ iter _ 方法的都稱之為可迭代對象

''.__iter__()

[].__iter__()

().__iter__()

{}.__iter__()

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

f.__iter__()

pass

(字符串,列表,元組,字典,集合, 打開的文件,都是可迭代對象)

調用 可迭代對象下的 _ iter_ 方法會將其轉換成迭代器對象

d = {"a": 1, "b": 2, "c": 3}

res = d.__iter__()

print(res)

運行結果:

轉換成迭代器后,有一個 _ next _ 方法

d = {"a": 1, "b": 2, "c": 3}

res = d.__iter__()

print(res)

print(res.__next__())

print(res.__next__())

print(res.__next__())

運行結果:

a

b

c

--------分界線--------

#重復執行迭代器會怎樣?

#在一個迭代器取值取干凈的情況下,再對其取值,取不到

#必須再調用一次迭代器才能取值

#步驟: 1、調用迭代器 2、取值

d = {"a": 1, "b": 2, "c": 3}

res = d.__iter__()

while True:

try:

print(res.__next__())

except StopIteration:

break

print("=====>>>>>")

# 重復執行迭代器會怎樣?

# 在一個迭代器取值取干凈的情況下,再對其取值,取不到

# 必須再調用一次迭代器才能取值

# 步驟: 1、調用迭代器 2、取值

res = d.__iter__()

while True:

try:

print(res.__next__())

except StopIteration:

break

3、可迭代對象與迭代器對象詳解可迭代對象(“可以轉換成迭代器的對象”):內置有_ iter _方法 的對象

可迭代對象.__iter__() :得到迭代器對象

迭代器對象:內置有 _ next _ 方法,并且內置有 _ iter _方法 的對象

迭代器對象.__next__() :得到迭代器的下一個值 迭代器對象.__iter__() :得到迭代器的本身,就是,調了跟沒調用一樣 這是為了讓 for 幕后統一格式

for 循環的工作原理(for循環就是“迭代器循環”)從 d._ iter _() 那里得到一個迭代器對象

從 迭代器對象._ next _() 那里拿到一個返回值,然后將該返回值賦值給 k

循環往復步驟2,直到拋出 StopIteration 異常,for循環會捕捉異常,然后結果循環

print("----for----")

for k in d:

print(k)

代碼運行結果:

a

b

c

=====>>>>>

a

b

c

----for----

a

b

c

碼字不易,如果此文章對你有幫助的話,點個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。

總結

以上是生活随笔為你收集整理的python迭代器举例_如何最简单、通俗地理解Python的迭代器?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。