python切片详解——[a::-1]、 [:b:-1]、 [::-1]的使用
2021/12/21 22:20:16
本文主要是介绍python切片详解——[a::-1]、 [:b:-1]、 [::-1]的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
切片
作用:处理列表的部分元素
用切片复制列表
Python可切片对象的索引方式
切片的参数
step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。
[a::-1]的使用
[:b:-1]的使用
[::-1] 的使用
切片
作用:处理列表的部分元素
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[1:5])
输出:
[2, 3, 4, 5]
特点:左闭右开,[1:5]代表索引1、2、3、4的元素。
如果没有指定第一个参数,自动从头开始。
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[:5])
输出:
[1, 2, 3, 4, 5]
同理如果没有指定第二个参数,自动到末尾结束。
用切片复制列表
那么如何用切片复制一个列表呢?
代码:
list=[1,2,3,4,5,6,7,8,9] list_1=list[2:5] print(list) print(list_1)
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9] [3, 4, 5]
当我们复制列表不用切片,而直接赋值时:
list=['cat','dog','pig'] list_1=list list.append('1') list_1.append('2') print(list) print(list_1)
输出:
['cat', 'dog', 'pig', '1', '2'] ['cat', 'dog', 'pig', '1', '2']
原本我们想得到的结果是在list列表中加上1,在list_1列表中加上2,然而得到的结果却是相同的。
这是因为这样实际上是让python将新变量(也就是list_1)关联原来的列表。当你用list_1列表或原来的list列表时实际上指向的是同一个列表。
Python可切片对象的索引方式
包括:正索引和负索引两部分,如下图所示,以list对象a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:
下面以实例说明负索引的使用:
list=[1,2,3,4,5,6,7,8,9] print(list[:-4])
输出:
[1, 2, 3, 4, 5]
[:-4]代表着索引为0、1、2、3、4的元素,也就是从第一个元素到倒数第5个。
切片的参数
切片操作基本表达式:object[start_index:end_index:step]
step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。
step为正数时
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[:6:2])
输出:
[1, 3, 5]
step=2代表从头开始每隔2个元素取一次值。
step为负数时
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[1:6:-1])
输出:
[]
输出为空列表,说明没取到数据,这是因为step=-1,决定了从右往左取值,而start_index=1到end_index=6决定了从左往右取值,两者矛盾,所以没有取到值。
[a::-1]的使用
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[4::-1])
输出:
[5, 4, 3, 2, 1]
当step为负数时,end_index默认为第一个数,所以从右往左取值,从start_index=4开始,一直取到“起点”1。
[:b:-1]的使用
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[:4:-1])
输出:
[9, 8, 7, 6]
当step为负数时,start_index默认为最后一个数,所以从右往左取值,从“终点”值9开始,一直取到end_index=4(不包括该点)。
[::-1] 的使用
代码:
list=[1,2,3,4,5,6,7,8,9] print(list[::-1])
输出:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
当start_index和end_index都不传入值时,而step为负,那么start_index默认为最后一个数,end_index默认为第一个数,所以从最后一个数从右往左取值一直到第一个数。
下面我们以一道题来说明:
编写函数, 接收一个列表(包含10个整形数)和一个整形数k, 返回一个新列表.
函数需求:
- 将列表下标k之前对应(不包含k)的元素逆序;
- 将下标k及之后的元素逆序;
代码:
def fun (list,k): if k<0 or k>len(list): return 'Error' else: list1=list[k:] list2=list1[::-1] list3=list[:k] list4=list3[::-1] return list4+list2 list=[1,2,3,4,5,6,7,8,9,10] print(list) print(fun(list,3))
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [3, 2, 1, 10, 9, 8, 7, 6, 5, 4]
这篇关于python切片详解——[a::-1]、 [:b:-1]、 [::-1]的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础