您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何在Python中操作可迭代對象,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1、列表生成式
list = [result for x in range(m, n)] g1 = (i for i in range(101)) print(type(g1)) print(g1) print(g1.__next__())
輸出:
<class 'generator'>
<generator object <genexpr> at 0x0000024E6AC08F10>
0
g1 = (i for i in range(11)) list1 = [i for i in g1] print(list1)
輸出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2、可迭代對象
①.可以直接作用于for循環的對象統稱為可迭代對象,我們稱之為:Iterator
②.我們可以使用isintance()判斷一個對象是否是Iterator對象
③.可以直接作用于for循環的數據類型有以下幾種
a.集合數據類型:如list、tuple、dict、set和string
b.生成器(generator):就是一個能返回迭代器的函數,其實就是定義一個迭代算法,可以理解為一個特殊的迭代器。
生成器:
通過列表生成式,我們可以直接創建一個列表,但是,受到內存限制,列表容量肯定是有限的,如果我們僅僅需要訪問前面幾個元素,如果列表元素可以按照某種算法推算出來,那我們是否可以在循環的過程中不斷推算出后續的元素呢?這樣就不必創建完整的list,從而節省大量的空間。在Python中,這種一邊循環一邊計算的機制,稱為生成器(Generator)
要創建一個generator,有很多種方法。第一種方法很簡單,只要把一個列表生成式的[]改成(),就創建了一個generator。
g1 = (i for i in range(11)) print(g1) for i in range(11): print(next(g1),end='\t')
輸出:
<generator object <genexpr> at 0x00000207F5C69678>
0 1 2 3 4 5 6 7 8 9 10
注意:使用Iterator判斷的時候需要導入Iterable的包
from collections import Iterable print(isinstance([],Iterable)) print(isinstance((),Iterable)) print(isinstance("",Iterable)) print(isinstance({},Iterable)) print(isinstance({1,2,3},Iterable)) print({1,2,3}) print(isinstance(1,Iterable)) print(isinstance(1.2,Iterable)) g1 = (i for i in range(101)) print(isinstance(g1,Iterable))
輸出:
True
True
True
True
True
{1, 2, 3}
False
False
True
3、迭代器
迭代器:不但可以作用于for循環,還可以被next()函數不斷調用并返回下一個值,
直到最后出現StopIteration錯誤,表示無法返回下一個值
可以被next()
函數調用并不斷返回下一個值的對象稱為迭代器(Iterator對象)
可以使用isinstance()函數判斷一個對象是否是Iterator對象。
注意:可迭代對象不一定是迭代器,但是迭代器一定是迭代對象。
可迭代對象與迭代器的關系:
可迭代對象包含迭代器
from collections import Iterator print(isinstance([],Iterator)) print(isinstance((),Iterator)) print(isinstance("",Iterator)) print(isinstance({},Iterator)) print(isinstance({1,2,3},Iterator)) print({1,2,3}) print(isinstance(1,Iterator)) print(isinstance(1.2,Iterator)) g1 = (i for i in range(101)) print(isinstance(g1,Iterator))
輸出:
False
False
False
False
False
{1, 2, 3}
False
False
True
4、 Iterator轉換
可以通過Iter()
函數將list、tuple、dict、string轉換為Iterator對象。
from collections import Iterator list1 = [i for i in range(11)] print(isinstance(list1,Iterator)) iter1 = iter(list1) print(isinstance(iter1,Iterator)) for i in range(11): print(next(iter1),end='\t')
輸出:
False
True
0 1 2 3 4 5 6 7 8 9 10
上述就是小編為大家分享的如何在Python中操作可迭代對象了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。