迭代器切片操作

2021-10-04 00:19:49 字數 538 閱讀 6916

迭代器物件一般來說是不支援像可迭代物件(list,tuple等)的切片操作。

如下示例:

def count(n):

while true:

yield n

n += 1

c = count(0)

c[10:20]

trackback(most recent call last):

file "", line 1, in typeerror: 'generator' object is not subscriptable

itertools模組提供了對迭代器物件的切片操作支援,itertools提供了模組級函式islice。

import itertools

for x in itertools.islice(c, 10, 20):

print(x)

...10

1112

1314

1516

1718

19

迭代器切片操作

迭代器物件一般來說是不支援像可迭代物件 list,tuple等 的切片操作。如下示例 def count n while true yield n n 1 c count 0 c 10 20 trackback most recent call last file line 1,in typeerr...

python迭代 如何對迭代器做切片操作

問題舉例 讀取某個檔案內容的100 300行內容,我們是否可以使用 類似列表切片的方式得到乙個100 300行檔案內容的生成器 列表的切片操作其實是在過載方法 getitem 方法 可以通過file.readlines 後再做切片,記憶體會載入整個檔案到記憶體,如果檔案太大,會浪費記憶體空間 使用i...

python迭代 如何對迭代器做切片操作

問題舉例 讀取某個檔案內容的100 300行內容,我們是否可以使用 類似列表切片的方式得到乙個100 300行檔案內容的生成器 列表的切片操作其實是在過載方法 getitem 方法 可以通過file.readlines 後再做切片,記憶體會載入整個檔案到記憶體,如果檔案太大,會浪費記憶體空間 使用i...