迭代器和生成器以及可迭代物件的轉化

2022-08-24 02:57:19 字數 1237 閱讀 8344

'''

可迭代物件:可以直接作用於for迴圈的物件統稱為可迭代物件,

比如:list dict tuple都是

可以使用isinstace()去檢測是否是可迭代物件iterable

可以直接作用於for的資料型別一般分為2種:

1.集合

2.generator,包括生成器和帶yile的generator函式

'''#在集合中倒入可迭代物件

from collections import iterable

#在集合中倒入可迭代器

from collections import iterator

#判斷列表是不是可迭代物件

print(isinstance(,iterable))

#判斷元組是不是可迭代物件

print(isinstance((),iterable))

#判斷字典是不是可迭代物件

print(isinstance({},iterable))

#判斷字串是不是可迭代物件

print(isinstance("",iterable))

#判斷 1 是不是可迭代物件

print(isinstance(1,iterable))

'''可以通過next()函式不斷獲取下乙個元素,直到報錯即為

獲取完成,沒有下乙個元素了

列表、元組雖然是乙個可迭代物件,但不是迭代器,需先轉化

'''#括號的作用相當於轉了變數

l = (x for x in [23,56,89,54,564,2,3,26])

print(type(l))

print(next(l))

print(next(l))

print(next(l))

print(next(l))

list1 = [1,2,3,45,6]

# 轉化成可迭代物件

list_1 = iter(list1)

print(next(list_1))

'''生成器

'''def aaa(x):

while true:

x = x + 1

#yield常見用法:該關鍵字用於函式中會把函式包裝為generator。

yield x

a = aaa(33)

print(next(a))

print(next(a))

print(next(a))

print(next(a))

python 可迭代物件和迭代器以及生成器

迭代器 生成器是python學習的重要概念,其在深度學習的資料集載入中應用也非常廣泛。本文主要闡述可迭代物件 iterable 迭代器 iterator 以及生成器 generator 的主要區別 首先,迭代器均為可迭代物件,生成器是特殊的迭代器,三者關係如下 1.可迭代物件 iterable 乙個...

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

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

可迭代物件 迭代器 生成器

可迭代物件 for迴圈機制 迭代器生成器 總結type所返回的型別是例項物件的類物件,而isinstance所進行的判斷則包含了例項物件的類物件及其父類。如圖 可迭代物件 迭代器 生成器所屬的型別分別為collections包裡的iterable,iterator,generator.實現了 ite...