代码学习之Python冒号详解

本文详细介绍了Python中列表切片的使用方法,包括单个冒号用于指定起始和结束位置,以及两个冒号用于引入步长的概念。通过具体实例展示了正向和逆向输出的不同效果,并解释了在不同情况下如何正确使用列表切片。
摘要由CSDN通过智能技术生成

最近看代码发现对冒号用法理解不够透彻,记录学习一下:

1.冒号的用法

1.1 一个冒号

a[i:j]

这里的i指起始位置,默认为0;j是终止位置,默认为len(a),在取出数组中的值时就会从数组下标i(包括)一直取到下标j(不包括j)

在一个冒号的情况下若出现负数则代表倒数某个位置

a[i:-j]

这里就是从下标i取到倒数第j个下标之前(不包括倒数第j个下标位置的元素)

1.2 两个冒号

a[i:j:h]

这里的i,j还是起始位置和终止位置,h是步长,默认为1

若i/j位置上出现负数依然倒数第i/j个下标的位置,h若为负数则是逆序输出,这时要求起始位置下标大于终止位置

在两个冒号的情况下若h为正数,则i默认为0,j默认为len(a);

若h为负数,则i默认为-1(即最后一个位置),j默认为-len(a)-1(下标0的前一个位置,这样就能输出到下标0了)

 


import numpy as np
x=np.array([[1,2,3],[5,6,7],[7,8,9]])
print(x)
'''
[[1 2 3]
 [5 6 7]
 [7 8 9]]
'''
print(x[:,::-1])
'''
[[3 2 1]
 [7 6 5]
 [9 8 7]]
'''
print(x[:,::1])
'''
[[1 2 3]
 [5 6 7]
 [7 8 9]]
'''
print(x[:,::2])
'''
[[1 3]
 [5 7]
 [7 9]]
'''
print(x[:,::3])
'''
[[1]
 [5]
 [7]]
'''
print(x[:,::666666])
'''
[[1]
 [5]
 [7]]
'''
a='hello world'
print(a[:])#hello world
print(a[1:4:]) # 冒号后没有写明故代表默认步长为1 ell
print(a[:-1])# hello worl
# -1代表倒数第一个位置,因为:前面的初始位置没有指定,默认为0,就从下标0一直取到最后一个位置之前
print(a[1:-2]) # ello wor -2代表倒数第二个位置,即从下标1取到倒数第二个位置之前
print(a[::-1])#dlrow olleh
# 前两个冒号和上面一致,就是确定起始位置和终止位置
# 第三个参数-1是指步长为-1,也就是逆序输出
# 这里a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素
# 所以[::-1]经常用来对一个数组进行逆序输出
print(a[1:4:-1])
# 这里什么也没有输出,因为按照给定的步长是无法从下标1走到4的,所以输出为空但不会报错
print(a[-2:-7:-2])# 这里起始位置是-2,终点是-7(不包括,所以输出到-6位置),步长为-2 lo 

 

 

参考博客https://www.cnblogs.com/liuys635/p/11209946.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值