一、迭代
迭代協議:–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值的檢視 ...