python 內建函式 iter

2021-09-25 04:20:16 字數 698 閱讀 5253

本文主要想說明:如果iter()函式的引數是乙個容器物件,那麼iter()函式返回該容器物件的乙個新的迭代器。

如果iter()函式的引數是乙個迭代器,那麼iter()函式返回輸入的迭代器。

可以根據這個性質,連續執行兩次iter(), 判斷輸入iter()的是容器物件還是迭代器。

直接上**:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#lst = [1,2,3,4,5,6,7,8,9,0]

it1 = iter(lst) # 產生新迭代器

it2 = iter(lst) # 產生新迭代器,與上乙個迭代器是兩個不同的迭代器,記憶體空間位置不一樣

it3 = iter(lst) # 產生新迭代器

it3_ = iter(it3)# 將迭代器輸入iter函式,返回輸入的迭代器,it3_與it3記憶體位置相同

print(it1)

print(it2)

print(it1 is it2)

print(it3)

print(it3_)

print(it3 is it3_)

"""結果:

false

true

"""

更多其他細節參考:

python 深入分析iter函式

在python中迭代物件x時會呼叫iter x 可是,iter函式還有乙個鮮為人知的用法 傳入兩個引數,使用常規的函式或任何可呼叫的物件建立迭代器。這樣使用時,第乙個引數必須是可呼叫的物件,用於不斷呼叫 沒有引數 產出各個值 第二個值是哨符,這是個標記值,當可呼叫的物件返回這個值時,觸發迭代器丟擲s...

python的iter 與next 函式

list tuple等都是可迭代物件,我們可以通過iter 函式獲取這些可迭代物件的迭代器。然後我們可以對獲取到的迭代器不斷使 next 函式來獲取下 條資料。iter 函式實際上就是調 了可迭代物件的iter 法。li 11 22,33 44,55 li iter iter li next li ...

python之 iter 函式與 next

容器是用來儲存元素的一種資料結構,容器將所有資料儲存在記憶體中,python中典型的容器有 list,set,dict,str等等。class test def init self,data 1 self.data data def iter self return self def next se...