python 列表分片
来源:互联网 发布:中国小镇 知乎 编辑:程序博客网 时间:2024/06/08 10:25
- 列表可以通过索引值来获取列表中的一个元素
- 但当需要一次性获取多个元素的时候, 就要使用列表的分片(slice)来实现
>>> param = [0, 1, 2, 3, 4, 5, 6, 7]>>> param[0:2][0, 1]
- 实现的方式就是用一个冒号隔开两个索引值, 左边是开始位置, 右边是结束位置, 但结束位置上的元素是不包含的
利用列表的分配得到的是 原来列表的拷贝, 原来的列表并没有发生改变
列表分片也可以简写
>>> param = [0, 1, 2, 3, 4, 5, 6, 7]>>> param[:3][0, 1, 2]>>> param[1:][1, 2, 3, 4, 5, 6, 7]>>> param[:][0, 1, 2, 3, 4, 5, 6, 7]
- 如果分片没有开始位置, 则默认开始位置是 0
- 如果分片没有结束位置, 则默认结束位置是指定到列表最末尾
>>> param[:7][0, 1, 2, 3, 4, 5, 6]>>> param[:8][0, 1, 2, 3, 4, 5, 6, 7]>>> param[:9] # 注意结束位置超过列表的长度, 最后结束是到列表最后一个元素[0, 1, 2, 3, 4, 5, 6, 7]>>> param[:11][0, 1, 2, 3, 4, 5, 6, 7]
列表分片的进阶玩法
- 列表分片操作实际上可以接收第三个参数, 代表的是 步长, 默认情况下是 1
>>> param = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10]>>> param[::2][0, 2, 4, 6, 8, 10]>>>
- 列表分片将步长值设置为-1, 则 相当于反转列表
>>> param = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10]>>> param[::-1][10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]>>> param[0:3:-1] # 反转是要整个列表..[]
题外话
- 复制一个列表可以通过分片操作, 也可以通过列表内部方法copy
>>> param = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> a = param[:] # 这样相当于 copy方法>>> b = param.copy()>>> >>> param.append('我是最初的列表')>>> a.append('我是分片复制的列表')>>> b.append('我是调用内部方法复制的列表')>>> >>> param[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '我是最初的列表']>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '我是分片复制的列表']>>> b[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '我是调用内部方法复制的列表']>>>
- 列表的翻转, 可以用分片设置步长为-1, 也可以用 内部方法reverse方法
- 两者是有区别的, 分片是拷贝出新的列表, 即一个翻转的列表, 不会影响到原来的列表, 而内部方法reverse会将原来的列表翻转
>>> param = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> a = param[::-1]>>> a[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]>>> param[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> param.reverse()>>> param[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
阅读全文
0 0
- python 列表分片
- python list列表分片
- python基础知识之列表的分片
- python学习之列表的分片赋值
- Python零基础入门四之列表的分片
- python分片
- 零基础学python-8.3 列表的索引、分片和矩阵
- Python中中列表分片插入的数目并不需要和原来的个数保持一致
- self,列表推导,分片,集合
- Python中的列表(添加二元列表、连接、查找、排序、反序、赋值、删除、分片操作、负索引、)
- Python之分片操作
- Python 分片(slice)
- python 索引和分片
- Python中的分片
- Python的字符串分片
- Python字符串分片操作
- python中的分片
- Python中的分片
- 一起来点React Native——你必须要会点FlexBox布局
- 20170803~20170804
- 解析动态代理模式与跟自定义注解配合使用以及事务注解原理
- java Logger类和Apache slf4j
- 如何在阿里云安装和调用R程序
- python 列表分片
- JavaScript中arguments关键字
- Linux 虚拟机:Network error: Connection refused 排查
- 实现ViewPager懒加载的三种方法
- 第四天 在嵩天老师的教授进度中查缺补漏
- java编程思想读书笔记一(面向对象)
- cf Educational Codeforces Round 26 C. Two Seals
- pat 1013. 数素数 (20)
- 欢迎使用CSDN-markdown编辑器