python : itertools 中的 islice : 获取迭代器结果的切片,消耗迭代器
islice(iterable, [start, ] stop [, step]):
创建一个迭代器,生成项的方式类似于切片返回值: iterable[start : stop : step],将跳过前start个项,迭代在stop所指定的位置停止,step指定用于跳过项的步幅。与切片不同,负值不会用于任何start,stop和step,如果省略了start,迭代将从0开始,如果省略了step,步幅将采用1.https://blog.csdn.net/larykaiy/article/details/82934527
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
示例:
step1:创建文本文档
my_file.txt
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright 2019 wzg16 <wzg16@wzg16-linux>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
step2:读取文档前三行
read1.py
with open("my_file.txt") as f:lines = f.readlines()print(lines[0:3])"""
返回:
['#!/usr/bin/env python\n', '# -*- coding: utf-8 -*-\n', '#\n']
"""
read_islice.py
from itertools import islicewith open("my_files.txt") as f2:for i in islice(f2,0,3):print(i)result = islice(f2,0,3)print(result)print(list(result))"""
输出:
#!/usr/bin/env python# -*- coding: utf-8 -*-# <itertools.islice object at 0x7f52a94dedb8>
['# Copyright 2019 wzg16 <wzg16@wzg16-linux>\n', '# \n', '# This program is free software; you can redistribute it and/or modify\n']
"""
islice 会消耗迭代器:
示例:
from itertools import islicel = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
it = iter(l)slice1 = islice(it,0,3)
slice2 = islice(it,0,3)
slice3 = islice(it,3,6)
slice4 = islice(it,0,3)print("slice1 = ",list(slice1))
print("slice2 = ",list(slice2))
print("slice3 = ",list(slice3))
print("slice4 = ",list(slice4))"""
输出:
slice1 = [1, 2, 3]
slice2 = [4, 5, 6]
slice3 = [10, 11, 12]
slice4 = [13, 14, 15]"""
python : itertools 中的 islice : 获取迭代器结果的切片,消耗迭代器相关推荐
- python用于获取用户输入的函数是_在Python函数中,用于获取用户输入的是( )...
在Python函数中,用于获取用户输入的是( ) 答:input() 中国大学MOOC:\"骨质疏松症的特征是是以骨量减少.骨的微观结构退化,致使发生的严重后果是\"; 答:\&q ...
- Python| itertools之pairwise:获取连续的重叠对
简介 最近刷力扣好几次都遇到了pairwise这个函数,感觉还挺方便的,今天又遇到后,搜索了一下他的含义及其用法. 总结如下. 参考网址: 「Python」Python 标准库之 itertools ...
- python itertools模块_Python标准模块--itertools
1 模块简介 Python提供了itertools模块,可以创建属于自己的迭代器.itertools提供的工具快速并且节约内存.开发者可以使用这些工具创建属于自己特定的迭代器,这些特定的迭代器可以用于 ...
- [Python] itertools.islice(iterable, start, stop[, step]) 创建迭代器并返回所选元素
首先介绍一下itertools - Functions creating iterators for efficient looping(函数创建迭代器以实现高效循环) 功能: 创建一个迭代器,从迭代 ...
- Python 3中的Itertools,例如
It has been called a "gem" and "pretty much the coolest thing ever," and if you ...
- 如何在Python中便宜地获取大文件的行数?
我需要在python中获取一个大文件(数十万行)的行数. 内存和时间最有效的方法是什么? 目前,我这样做: def file_len(fname):with open(fname) as f:for ...
- python itertools模块_Python中的Itertools模块
itertools提供的工具快速且高效,为了提升代码质量及避免重复造轮子,有必要学习下. 无限迭代器 count(start=0, step=1) count迭代器以start为起点(默认0),ste ...
- Python Itertools.chain()用法【将一组迭代对象串联起来,形成一个更大的迭代器】
它是一个需要一系列可迭代对象并返回一个可迭代对象的函数.它将所有可迭代对象组合在一起,并生成一个可迭代对象作为输出. 场景一: chain()可以把一组迭代对象串联起来,形成一个更大的迭代器: &g ...
- Python——itertools.chain.from_iterable将多个迭代器连接成一个统一的迭代器的最高效的方法
1 致谢 感谢网友"-柚子皮-"的帮助, 原文链接如下: https://blog.csdn.net/pipisorry/article/details/45171451 感谢 P ...
最新文章
- jquery mobile的a标签点击无法跳转的问题
- P4318 完全平方数
- 设置程序无label
- 6.虚拟机类加载机制
- KVM更改虚拟机默认存储路径
- vue click事件_vue指令用法
- bzoj1596[Usaco2008 Jan]电话网络*
- xml学习中的趣事一件----嘿嘿!
- 使用jprobe建设镜面层叠的原则和见解
- 【22】Vue 之 Vue Devtools
- hitool java_Hitool打开出现failed to create the java virtual machine
- Moore-Penrose伪逆(Moore-Penrose广义逆)
- icloud连接服务器时出现问题_苹果iCloud连接超时/验证失败解决方法
- 2021年12月电子学会图形化四级编程题解析含答案:聪明的小猫
- html邮箱图标代码,CSS3 单元素邮件图标
- 基于WebSocket和Redis实现Bilibili弹幕效果
- linux下c语言调用mysql,Linux下C语言连接MySQL
- [Ubuntu 18.04]公共DNS设置[/etc/resolv.conf]
- Python第八课(函数1)
- Python监听鼠标左键被点击,gogo,急停,
热门文章
- nacos 单机部署_nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较
- java的字符串复制_我应该如何复制Java中的字符串?
- mysql5.6 多实例 主从安装_MySQL5.6一主多从的半同步复制实例
- 前端怎么自我介绍_未雨绸缪,小米前端实习面经
- php指定编码创建,MYSQL创建数据库时指定编码
- java数组删除数组元素_如何在Java中删除数组元素
- 如何检查Python字典中是否存在密钥
- 链接列表插入删除方法
- 寻找最佳特征维度_寻找5种最佳设计模式书
- java map中套map_Java Map – Java中的Map