美文网首页
python(迭代器的切片操作)

python(迭代器的切片操作)

作者: OldSix1987 | 来源:发表于2016-09-02 20:59 被阅读201次
f = open('CodingStyle.txt', 'r')

lines = f.readlines()  # readlines方法会一次性的把整个文件读到内存当中,当文件过大时,有可能导致内存不足

# print(lines[100:300])

for line in f:
    print(line)  # 这里什么都不会输出,是因为文件指针已经回到了文件末尾处

f.seek(0)  # 回到文件头部

for line in f:
    print(line)  # 这时才有结果
# -------------------------------------------------------------------------------------------------

from itertools import islice

l = islice(f, 100, 300)  # 生成一个iterator:文件对象的100-300行
l2 = islice(f, 100, None)  # 生成一个iterator:文件对象的100行到文件末尾
l3 = islice(f, 500)  # 生成一个iterator:文件对象的前500行list,只传一个参数,默认为start=0,end=500

for line in l:
    print(line)
# ---------------------------------------------------------------------------------------------

ln = range(20)

t = iter(ln)

for x in islice(t, 5, 10):
    print(x)          # 输出:5, 6, 7, 8, 9

print('-'*20)

for x in t:
    print(x)          # 此处再调用t,会继续往下迭代,输出:10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

print(list(ln))  # ln不变

相关文章

网友评论

      本文标题:python(迭代器的切片操作)

      本文链接:https://www.haomeiwen.com/subject/aickettx.html