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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python 列表和迭代器区别

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 列表和迭代器区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 列表不論遍歷多少次,表頭位置始終是第一個元素;
  • 迭代器遍歷結束后,不再指向原來的表頭位置,而是為最后元素的下一個位置。

通過 type 關鍵字可以看到列表和迭代器的類型是不同的。

In [1]: a = [1,2,3]In [2]: b = iter(a)In [3]: type(a)
Out[3]: listIn [4]: type(b)
Out[4]: list_iterator

通過 for 循環迭代列表和迭代器,可以發現,列表每次迭代都是從第一個元素開始,而迭代器在迭代結束后再次迭代就不會有任何值。因為一旦迭代結束,就指向迭代器最后一個元素的下一個位置。

In [6]: for i in a:...:     print(i)...:     
1
2
3In [7]: for j in b:...:     print(j)...:     
1
2
3In [8]: for i in a:...:     print(i)...:     
1
2
3In [9]: for j in b:...:     print(j)...:     In [10]: 

只有迭代器對象才能與內置函數 next 結合使用, next 一次,迭代器就前進一次,指向一個新的元素。
所以,要想迭代器 b 重新指向 a 的表頭,需要重新創建一個新的迭代器。

In [10]: b = iter(a)In [11]: next(b)
Out[11]: 1In [12]: next(b)
Out[12]: 2In [13]: next(b)
Out[13]: 3In [14]: next(b)
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
<ipython-input-14-adb3e17b0219> in <module>
----> 1 next(b)StopIteration: In [15]: 

需要注意,我們無法通過調用 len 獲得迭代器的長度,只能迭代到最后一個末尾元素時,才知道其長度。

總結:遍歷列表,表頭位置始終不變;遍歷迭代器,表頭位置相應改變; next 函數執行一次,迭代對象指向就前進一次; StopIteration 觸發時,意味著已到迭代器尾部

總結

以上是生活随笔為你收集整理的Python 列表和迭代器区别的全部內容,希望文章能夠幫你解決所遇到的問題。

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