慕課網 如何對迭代器做切片操作

2021-08-17 04:18:54 字數 967 閱讀 9245

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

# 有某個文字檔案,我們想讀取其中某範圍的內容如100~300行之間的的內容,python中文字切片的方式得到乙個100-300行檔案內容的生成器?

# f=open('/var/log/dmesg')

# f[100:300] 可以嗎?

from itertools import islice

def main():

# f = open('text.txt','w+')

# for x in range(1000000):

# f.write(str(x))

# f[100:300]

# f.close()

# 從多少行到多少行

with open('text.txt') as f:

print(islice(f, 100, 300))

for line in islice(f, 0, 300):

print(line,)

for line in islice(f, 0, none):

print(line, )

# lines=f.read()

# 會把檔案匯入記憶體中 一次性的讀入可能是乙個災難

# print(lines[100:300])

# 指標跑到第一位

# f.seek(0)

# print()

# for line in f:

# print(line)

# islice會消耗原來的物件

l=list(range(20))

t=iter(l)

print(t)

for x in islice(t,5,10):

print(x)

for x in t:

print(x)

pass

main()

慕課網python學習筆記 2 迭代物件

3.實現迭代器與可迭代物件 1.迭代器 iterator是乙個表示資料流的物件。重複呼叫迭代器的 next 方法 或將迭代器傳遞給內建函式next 將返回資料流中的連續項。當沒有資料可訪問時,將會引發乙個stopiteration異常。這個時候,迭代器物件已耗盡,後續任何對 next 方法的進一步呼...

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

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

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

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