python切片中内存的注意事项总结
作者:小妮浅浅 发布时间:2022-12-23 00:04:09
1、由于 Python 列表的切片会在内存中创建新对象,因此需要注意的另一个重要函数是itertools.islice。
2、通常需要遍历切片,而不仅仅是在内存中静态创建它。islice非常适合这个。
一个警告,它不支持负的参数start,stop或者step,如果这是一个问题,您可能需要计算指标或反向迭代提前。
length = 100
last_nine_iter = itertools.islice(list(range(length)), length-9, None, 1)
list_last_nine = list(last_nine_iter)
现在:
>>> list_last_nine
[91, 92, 93, 94, 95, 96, 97, 98, 99]
列表切片制作副本的事实是列表本身的一个特征。如果您对 Pandas DataFrame 等高级对象进行切片,它可能会返回原始视图,而不是副本。
内容扩展:
语法:
nuList[start:end:direction]
start -->起始下标(direction = 1时,默认是0;direction = -1时默认是-1)
start -->结束下标(direction = 1时,默认是len(nuList)-1;direction = -1时默认是-(len(nuList)-1))
direction --> 默认是1,切片方向从左往右;-1时,切片方向从右往左
1.只包含左边的端数据,不包含右边的端数据
print(nuList[1:3])
结果是:[1,2]
2.按照不同的方向返回元素
print(nuList[::])
结果是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nuList[::-1])
结果是:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3.严格按照方向顺序截取
print(nuList[3:1]) #从左往右,下标3开始切,但是无法找到下标1
print(nuList[-1:-3]) #从左往右,下标-1开始切,但是无法找到下标-3
print(nuList[-3:-1:-1]) #从右往左,下标-3开始切,但是无法找到下标-1
结果都为:[]
print(nuList[1:-1]) #从左往右,下标1开始切,能找到-1下标
结果:[1, 2, 3, 4, 5, 6, 7, 8]
print(nuList[-1:1:-1]) #从右往左,下标-1开始切,能找到1下标
结果:[9, 8, 7, 6, 5, 4, 3, 2]
来源:https://www.py.cn/jishu/jichu/32314.html


猜你喜欢
- 环境python3,开发平台pycharm,使用urllib时,当url中存在中文时会出现以下错误:UnicodeEncodeError:
- php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,该函数返回一个array,包含两个元素,一个是秒数,一个是小数表
- 写在前面python-docx 不支持 doc 文档,一定要注意该点,如果使用 doc 文档,需要提前将其用 Word 相关软件转换为 do
- 本文主要是利用scapy包编写了一个简易扫描工具,支持ARP、ICMP、TCP、UDP发现扫描,支持TCP SYN、UDP端口扫描,如下:u
- 前言python学习之路任重而道远,要想学完说容易也容易,说难也难。很多人说python最好学了,但扪心自问,你会用python做什么了?刚
- 引言年中购物618大狂欢开始了,各大电商又开始了大力度的折扣促销,我们的小胖又给大家谋了一波福利,淘宝APP直接搜索:小胖发福利,每天领取三
- 如下所示:群里一朋友发了一个如上图的问题,解决方法如下data = {'a':[1,1,1,1,1,1,1,1,2,2,2,
- 1、csv简介CSV (Comma Separated Values) ,即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用
- 本文实例讲述了python判断一个集合是否包含了另外一个集合中所有项的方法。分享给大家供大家参考。具体如下:>>> L1
- Jaslabs的Justin Silverton列出了十条有关优化MySQL查询的语句,我不得不对此发表言论,因为这个清单非常非常糟糕。另外
- 前言进程之间通信与线程同步是一个历久弥新的话题,对编程稍有了解应该都知道,但是细说又说不清。一方面除了工作中可能用的比较少,另一方面就是这些
- 最近在用Pycharm学习Python的时候,总有两个地方感觉不是很舒服,比如调用方法的时候区分大小写(thread就不会出现Thread,
- 当服务器必须提供与两个或更多个网络或网络子网的连接时,典型的方案是使用多宿主计算机。此计算机通常位于外围网络(也称为 DMZ、外围安全区域或
- 在统计学和数据分析领域中,我们常常需要比较两个或多个样本数据之间的差异。而带置信区间的折线图则是一种直观且常用的展示数据差异的方式。在这篇文
- Mysql数据库常用命令:启动Mysql数据库C:》cd Mysql5.0 binC:Mysql5.0 bin》mysqld –instal
- 目录解析器和预处理器查询优化器MySQL查询优化需要经过解析、预处理和优化三个步骤。在这些过程中,都有可能发生错误。本篇文章不会深入讨论错误
- 印象中,以前电脑不发达,自身编程经历不多的时候,由于Microsoft SQL Server版本众多,在不同版本的windows下必须要求装
- MySQL时间盲注五种延时方法 (PWNHUB 非预期解)延时注入函数五种:sleep(),benchmark(t,exp),笛卡尔积,GE
- 在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构
- 第一步:要使用vant组件安装好vant,npm i vant -S第二步:在你要用到的地方js中引入或者在src/main.js里面引入i