迭代的一些操作

2021-09-30 01:12:59 字數 1586 閱讀 2292

一、迭代

迭代協議:–next–(),迭代器和for迴圈的區別在於,迭代器占用記憶體空間較小,for迴圈遍歷列表,所佔記憶體空間很大。

>>

>f=

open

('data.txt'

,encoding=

'utf8'

)>>

>f.next__(

)>

#顯示一行

>>

>f.next__(

)>

#顯示下一行

#可用全域性函式next()代替__next__()方法,也可實現迭代

注意:迭代工具:for 、推導、map

哪些可以迭代:迭代器物件(已經實現),可迭代物件(iter->iter()用於生成迭代器)

>>

>

for i in[1

,2,3

]:>>

>

print

(i)123

#可用iter()測試是否實現迭代功能

>>

>

iter

(f)is f

>

#若返回true,則可以用__next__()方法,否則不能迭代

>>

>l=

['asdfa'

,'fasd'

,'gdfg'

]>>

>

iter

(l)is l

>

false

#所以不能用,但是如果用for迴圈,自動生成迭代功能,如果想自己實現迭代,可用如下

>>

>i=

iter

(l)#用於生成迭代器

>>

>i.__next__(

)#就可以迭代了

題:l=[1,2,3,4],得出平方值

方法一(for迴圈)

>>

>res=

>>

>

for c in l :2)

#方法二(迭代)

>i=

iter

(l)>

while

true

:>

try:

next

(i)**2)

> xcept stopiteration:

>

break

#方法三(列表推導)

>result=

[x**

2for x in l]

>emp=

>emp.keys(

)dict_keys(

['age'

,'name'

,'job'])

#輸出不是列表

#>keys=emp.keys(

)>

iter

(keys)

is keys

false

>i=

iter

(keys)

#則可以迭代了

迭代計算的一些開源框架

迭代計算是一種通過多次迴圈得出結果的計算方式,一般需要將上一次計算的結果代入到下一步的計算中去。當計算資料和計算規模都比較小時,可以在單機上實現計算過程 但是當資料集變大或者計算複雜度上公升時,在單機上就可能無法完成計算了。在網際網路企業中,各種資料探勘,資訊檢索等計算用例,由於抽取的資料集較大,往...

關於迭代器的一些總結

在進行for迴圈的時候,會碰到兩個名詞 乙個是可迭代的物件iterable,乙個是迭代器iterator。可迭代的物件有很多,例如sequence中的string,list,tuple,還有字典dict,檔案file等,在可迭代的物件中,主要是實現了 iter 方法,從而使可迭代的。迭代器itera...

集合 迭代器的一些總結

map isempty 如果map未包含鍵 值對映關係,則返回 true get object key 根據鍵獲取值,如果鍵為空 返回null put key,value 在map中建立鍵 值關係,如果map中存在該鍵,則新值替換舊值 values 返回值為collection的包含map值的檢視 ...