Python區分容器和迭代器

2021-10-04 11:36:26 字數 1198 閱讀 8439

建議閱讀:python可迭代物件、迭代器和生成器的區別

組織元素的資料結構,例如python內建有list,set,dict,tuple

定義了__next__()的物件,可以呼叫next()返回下一條資料

呼叫iter(a) if iter(a),true則為迭代器

a =

# 容器

print

(iter

(a)is

iter

(a))

# false

a =iter

(a)# 轉換成迭代器

print

(iter

(a)is

iter

(a))

# true

classa:

def__iter__

(self)

:for _ in

range

(10000):

yield

1a = a(

)print

(iter

(a)is

iter

(a))

# false

a =iter

(a)# 轉換成迭代器

print

(iter

(a)is

iter

(a))

# true

或使用內建庫

from typing import iterator

classa:

'''生成器'''

def__iter__

(self)

:yield

1print

(isinstance

(a()

, iterator)

)print

(isinstance

(iter

(a()

), iterator)

)# 生成器轉迭代器

# false

# true

effective python

python:容器、迭代器、生成器

typing — 型別標註支援

容器 迭代器

stl包括 容器 資料結構 迭代器 遍歷資料 演算法 順序容器 vector 向量 list 鍊錶 deque 雙端佇列 關聯容器 set 集合 multist map 對映 multimap 迭代器 類似於指標 用來訪問容器中的單個資料項 迭代器由類iterator來宣告。include incl...

容器vector和迭代器iterator 使用

容器vector宣告方式 vector 型別 變數名 引數 使用前需要引用 incude 初始化方式有下面幾種 1 宣告初始化例如 vectorvct 預設建構函式為空 vectorvct1 vct 用已宣告好容器來初始化 vectorvct2 3,5 大小為3的容器初始化三個都等於5 vector...

序列容器vector和迭代器

一 容器vector vector類模板提供了一種占用連續記憶體位址的資料結構。這使得它可以高效,直接的利用下標運算子訪問vector中的任一元素,當乙個vecto的記憶體空間耗盡時,它會分配乙個更大的連續空間 陣列 把原先的資料複製 或移動 到新的空間 陣列 並把原來的空間 陣列 釋放。其中的 0...