python列表切片规则_Python 列表切片
想必很多人都使用过列表的切片,通过切片可以从列表中获取一个或多个元素,但你真的了解切片?
一、一般玩法
>>> name = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> name[0:2]# 获取 0 - 2 中间的元素,不包括索引为 2 的元素
['a', 'b']
>>> name[:2]# 从 0 开始切,可省略 0
['a', 'b']
>>> name[1:]# 同样地,切到最后一个也可以省略最后的元素索引
['b', 'c', 'd', 'e', 'f', 'g', 'h']
二、列表步长
列表切片实际上还可以接收第三个参数:步长(默认情况为 1),来试试将其改为 2 会有说明变化?
>>> name[1:6:2]# 每隔 2 个元素才取出一个来
['b', 'd', 'f']
>>> name[::2]# 如果是从头到尾切,还可以写成这样
['a', 'c', 'e', 'g']
>>> name[::-1]# 同样地,步长还可以是负数,当步长为 -1 时,相当于复制一个反转的列表
['h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']
>>> name[::-2]
['h', 'f', 'd', 'b']
容易出错的地方:
>>> name[7:2:-2]# 相当于从索引为 7 到 索引为 2 中,每隔 2 各元素取一个出来
['h', 'f', 'd']
>>> name[10:2:-2]# 对于超出索引的,默认是从最后一个元素开始取
['h', 'f', 'd']
>>> name[100:2:-2]
['h', 'f', 'd']
三、列表深浅拷贝
浅拷贝
>>> A = name[:]
>>> id(A)
2004289344072
深拷贝
>>> B = name
>>> id(B)
2004289245384
>>> id(name)
2004289245384
原理透析
Python 的变量就像一个 标签,或者说是一个名字,它通过指针指向元素值,可以理解为下图所示:
深拷贝指向原来的值,两者 ID一致,浅拷贝是从原来的值上复制一个副本出来。
四、面试题
1、列表 l = [1, 2, 3, 4, 5, 6, 7, 8, 9],那么 print(l[10:3:-2]) 为多少?
>>> l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(l[10:3:-2])
[9, 7, 5]
2、输出值
A = 'apple'
B = A
B = 'banana'
print(A)
A 为字符串,是不可变类型,因此 A 的值始终不变,为:'apple'
3、输出值
A = ['apple']
B = A
B[0] = 'banana'
print(A)
= 是深拷贝,两者 ID 也相同,修改 B 会影响 A,修改 A 会影响 B,所以结果为: ['banana']
4、输出值
A = ['apple']
B = A[:]
B[0] = 'banana'
print(A)
[:] 是浅拷贝,只拷贝了第一层,修改不会有影响,所以结果为:['apple']
python列表切片规则_Python 列表切片相关推荐
- python列表浅复制_Python列表的深复制和浅复制示例详解
一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码: l1 = [5, 4, 3, 2, 1] # 用 ...
- python list 深复制_Python列表的深复制和浅复制示例详解
免费资源网,https://freexyz.cn/ 一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码 ...
- python list方法操作_Python 列表(List)操作方法详解
参考文献来源于脚本之家 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0 ...
- python一些简单操作_python列表的基本操作有哪些
python列表的基本操作有:1.创建列表,只要把逗号分隔的不同的数据项使用方括号括起来:2.添加新的元素:3.遍历列表:4.访问列表中的值:5.从list删除元素. 相关免费学习推荐:python教 ...
- python处理列表中字典_Python 列表、元组、字典及集合操作详解
一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...
- python 元组 列表 字典区别_Python列表、元组、字典、集合、字符串的异同总结
1.数据类型 列表.元组.字典.集合.字符串均属于python3的标准数据类型. 字符串和元组属于不可变数据,即创建后不可修改. 列表.字典.集合属于可变数据,即创建后可以修改元素. 2.创建有元素的 ...
- python列表比较方法_python列表常用方法
list是一个类,用中括号括上,逗号分隔,元素可以是数字,字符,字符串,也可以是嵌套列表,布尔类型. 1.通过索引取值 li=[1,12,9,'age',['wangtianning',[19,'10 ...
- python数组排序返回索引_python列表排序返回索引
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我需要对列表进行排序,然后返回一个列表,其中包含列表中排序项的索引... 我有一 ...
- python列表反向排序_Python 列表排序方法reverse、sort、sorted详解
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
最新文章
- Prewitt 边缘检测
- ubuntu 将某个目录下的文件复制到_Linux下处理隐私骚操作
- .gitignore和.gitkeep有什么区别?
- Python-面向对象进阶
- python怎么用pip_python怎么使用pip工具
- 韵达基于云原生的业务中台建设 | 实战派
- Python编程专属骚技巧1
- 实现文件上传进度条功能
- js对象数组计算总计_如何计算数组中的对象
- Flutter 气泡背景效果 仿苹果桌面运动的气泡
- 【选手分享】你想知道的比赛思路这里都有!速查收!
- python bokeh_浅谈python可视化包Bokeh
- Jfinal中Cron4jPlugin使用
- Olympic Games -basketball
- python多元线性回归实例_关于多元线性回归分析——PythonSPSS
- spring-第十七篇之spring AOP基于注解的零配置方式
- 面向边缘计算的资源优化技术研究进展
- 软件测试技术(思维导图)
- python tif转jpg_怎样把TIF转化为JPG图片格式
- Unity3D中玩家的移动方式,三大类型,八种方式
热门文章
- FD.io VPP 20.05 官方文档 总目录:用户文档+开发文档+命令行
- __attribute__((visibility()))
- 汇编中bss,data,text,rodata,heap,stack段的作用
- java线程池读文件_多线程读取Java文件
- mybatis多数据源配置_随笔:springboot+mybatis 配置双数据源
- java string补空格_Java String字符串补0或空格详解
- c语言学习-输入一个十进制数,输出其对应的八进制数据
- pythons实现信号分帧
- OpenShift 4 之一些实用命令和技巧
- 使用基于JSON的实体在C#中缓存远程数据