專題3 容器 可迭代物件 迭代器 生成器

2021-09-28 16:02:49 字數 2274 閱讀 8739

1

. 容器:把一種多個元素組織在一起的資料結構,容器中的元素都可以迭代獲取,可以用成員關係操作符來判斷元素是

否在容器中-

--容器不是型別

2. 常見的容器:

list

tuple

strset

frozenset

dict

可以是異構的也可以是同構

(異構:多個不同型別的物體參與完成某一件事情,異構系統的各個組成部分具有自身的自治性,實現資料共享的前提下,仍保留有自己的應用特性,完整特性,安全特性。

同構:多個相同型別的物體參與完成某一件事情

1

. 很多容器都是可迭代物件(容器包含可迭代物件)

2. 乙個可迭代物件是不能獨自進行迭代,python中,迭代是通過for來完成的for迴圈做了一下兩件事:

>>

> k=l.__iter__()-

---k=iter

(l)>>

> k.__next__()-

----

next

(k)1

>>

> k.__next__(

)2

1

.iter()

---返回物件的迭代器

2. 他是乙個帶狀物件,可以在呼叫next

()時,返回物件的乙個值

3. 只要實現了__iter__(

),__next__(

)的物件,就是迭代器

4. 迭代器也是可迭代物件

list

strtuple

1. 可迭代物件包含序列

2. 序列可以被iter()

next

()使用

3. 生成無限序列

import itertools

a=itertools.count(

)print

(next

(a))

print

(next

(a))

4. 從乙個有限序列生成無限序列

import itertools

a=itertools.cycle([1

,2,3

])print

(next

(a))

print

(next

(a))5.

next()

懶載入機制(什麼時候使用,什麼時候調)

懶漢式載入6.

for餓漢式載入

1

. 語法:

l=[i for i in 可迭代物件]

l=[i for i in

range(10

)if4>5]

#如果if為真則執行前面的for

2. 變形:

l=[i*

2for i in

range(10

)]l=[i*

2for i in

'abcd']l=

[i*2

for i in

'abcd'if0

==true]l=

[fun(i)

for i in

range(5

)]l=[fun1(i)

if fun(i)

else fun2(i)

for i in

range(5

)]

語法:

l=

1

. 生成器表示式(生成式)

將列表的推導式方括號改為圓括號

生成器直接通過next()-

-__next__(

)進行呼叫

是乙個特殊的迭代器2.

yield 關鍵字

deffun()

: a=

10while1:

yield a

a+=1a=fun(

)print

(a)3

. 生成器是可迭代物件

容器》可迭代物件(迭代器(生成器---

1. 生成器表示式2

.yield關鍵字))>序列

1. 迭代器:實現__iter__(

)和__next__()2

. 生成器---

1. 生成器表示式2

.yield關鍵字

python中的容器 可迭代物件 迭代器 生成器

容器是一系列元素的集合,str list set dict物件都可以看作是容器,容器都可以被迭代 用在for,while等語句中 在了解完容器物件之後,我們來了解一種特殊的容器物件之可迭代物件。1 是什麼?顧名思義,可迭代物件指的就是可以被迭代的物件。迭代指的就是通過迴圈不斷產生 元素 的一種訪問 ...

迭代器 可迭代物件 迭代器物件

今天的學習內容有 迭代器 可迭代物件 迭代器物件 for迴圈內部原理 生成器和生成器表示式 面向過程程式設計 迭代就是指更新換代的過程,要重複進行,而且每次的迭代都必須基於上一次的結果。我們使用for迴圈的時候就是把元素從容器裡乙個個取出來,這種過程其實就是迭代。迭代器 迭代取值的工具。迭代器的作用...

可迭代物件 迭代器,生成器

可迭代物件 iterator 列表 集合 元組 字典 字串 生成器 我們可以使用isintance 判斷乙個物件是否是iterator物件 生成器 通過列表生成式,我們可以直接建立乙個列表,但是,受到記憶體限制,列表容量肯定是有限的,如果我們僅僅需要訪問前面幾個元素,如果列表元素可以按照某種演算法推...