python代碼生成器,python三大器_Python 入門之 Python三大器 之 迭代器

 2023-12-10 阅读 34 评论 0

摘要:1、迭代器python代碼生成器,(1)可迭代對象<1> 只要具有__ iter__()方法就是一個可迭代對象(我們可以通過dir()方法去判斷一個對象具有什么方法,dir()會返回一個列表,這個列表中含有該對象的以字符串的形式的所有方法名)lst.__iter__()dict.__iter__()<

1、迭代器

python代碼生成器,(1)可迭代對象

<1> 只要具有__ iter__()方法就是一個可迭代對象

(我們可以通過dir()方法去判斷一個對象具有什么方法,dir()會返回一個列表,這個列表中含有該對象的以字符串的形式的所有方法名)

lst.__iter__()

dict.__iter__()

<2> 可迭代對象的優點:

可以直觀的查看里面的數據。

<3> 可迭代對象的缺點:

占用內存

可迭代對象不能迭代取值(除去索引,key以外)

(2)迭代器:工具

<1> 具有__ iter__() 和 __ next__() 兩個方法的就是迭代器

( iter() 和 __ iter__() 是一樣的 推薦使用iter() )

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

l = lst.__iter__() # 將可迭代對象轉換成迭代器

l.__iter__() # 迭代器指定__iter__()還是原來的迭代器

print(l.__next__()) # 1

print(l.__next__()) # 2

<2> 迭代器基于上一次停留的位置,進行取值

<3> 迭代器的優點:

惰性機制: 節省空間

<4>迭代器的缺點:

不能直接查看值,迭代器查看到的是一個迭代器的內存地址

一次性,用完就沒有了

不能逆行(后退)

<5> 應用:

?當數據量過大,大到足以撐爆你的內存或者以節省內存為首選因素時,將數據集設置為迭代器是一個不錯的選擇。(可參考為什么python把文件句柄設置成迭代器)。

(3)空間換時間:容器存儲大量的元素,取值時間短,但是容器占用空間大

(4)時間換空間:迭代器就是節省了空間,但是取值時間較長

(5)for 循環的本質

l1 = [1, 2, 3, 4, 5, 6]

obj = iter(l1) # 1.將可迭代對象轉化成迭代器

while True: # 2.利用while循環,next進行取值

try:

print(next(obj))

except StopIteration: # 3.利用異常處理終止循環

break

(6)Python2和Python3中的區別:

pyhton3:

iter()和 __iter__() 都有

next()和__next__()都有

python2:

iter()

next()

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/194296.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息