3-5对迭代器做切片操作
来源:互联网 发布:windows如何禁止更新 编辑:程序博客网 时间:2024/06/03 17:20
# -*- coding:utf-8 -*-"""实际案例:有某个文本文件,我们想读取其中某范围的内容如100~300行之间的内容,python中文本文件是可迭代对象,我们是否可以使用类似列表切片方式得到一个100~300行内容的生成器?f = open('/var/log/dmesg')f[100:300] # OK?解决方案:使用标准库中的itertools.islice,它能返回一个迭代对象切片的生成器."""from itertools import islicef = open('/var/log/dpkg.log')# cut_f = f[100:300] # 会报错,不允许ls_lines = f.readlines()cut_lines = ls_lines[100:300]# 缺点就是:readlines会把整个文件导入到内存当中,文件过大时会出现内存不足for line in f: print(line)# 现在调用不会出现任何输出结果,因为上述操作已经把文件指针移动到了文件最后f.seek(0)# for line in f:# print(line) # 现在会有结果出来for line in islice(f, 100, 300): print(line)# islice(f, 500) # 描述前500行# islice(f, 100, None) # 100~endls = range(20)t = iter(ls) # 生成ls的迭代器for x in islice(t, 5, 10): # 记着每次使用islice时,要重新申请一个可迭代对象,它会消耗这个迭代对象的资源 print(x)# 5# 6# 7# 8# 9for x in t: print(x) # 因为t已经迭代到10那个位置# 10# 11# 12# 13# 14# 15# 16# 17# 18# 19
0 0
- 3-5对迭代器做切片操作
- 如何对迭代器做切片操作
- python-9-如何对迭代器做切片操作?
- python 3-5 如何对迭代器做切片操作itertools.islice(open("test.txt"),0,10),迭代器消耗
- R 语言 数据切片,对每个切片组分别操作
- [Python] 对字符串,列表的切片操作
- python如何对list进行切片操作
- 切片操作
- 切片操作
- java 对reids的操作 切片与非切片连接池的应用
- java 对reids的操作 切片与非切片连接池的应用
- Python高级编程-如何对迭代器进行切片操作?
- 对字符串切片
- python对字符串切片
- 对list进行切片
- 对字符串切片
- Python 切片操作
- python切片操作
- Glide源码分析(一)——DiskLruCache磁盘缓存的实现
- 2013第四届蓝桥杯预赛试题本科c++前缀判断
- Sql profiles-->使用sql tuning生成sql profile
- LeetCode:535. Encode and Decode TinyURL
- iptables详解
- 3-5对迭代器做切片操作
- 带头结点的双向循环链表
- STl的set容器的总结
- 深入.net第四章
- 3-6在一个for语句中迭代多个可迭代对象
- java 文件操作(二)---Files和Path
- Bootstrap 进度条
- 利用Python将excel表格转换为json文件
- 4-1拆分含有多种分隔符的字符串