【转载】Python 中的 [:-1] 和 [::-1] 的具体使用

178 阅读2分钟

原文链接

python 中的[:-1]和[::-1]的具体使用 | 明宇李

原文结构有点问题,我调整了一下

正文

这篇文章主要介绍了 Python 中的 [:-1][::-1] 的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

用法说明

一个冒号

b = a[i:j] 表示复制 a[i]a[j-1],以生成新的 list 对象

a = [0,1,2,3,4,5,6,7,8,9]
b = a[1:3]   # [1,2]
  • i 缺省时,默认为 0,即 a[:3] 相当于 a[0:3]
  • j 缺省时,默认为 len(alist), 即 a[1:] 相当于 a[1:10]
  • i, j 都缺省时, a[:] 就相当于完整复制一份 a

两个冒号

b = a[i:j:s] 表示:i,j 与上面的一样,但 s 表示 步进,缺省为 1. 所以 a[i:j:1] 相当于 a[i:j]

s<0 时,

  • i 缺省时,默认为 -1.
  • j 缺省时,默认为 -len(a)-1

所以 a[::-1] 相当于 a[-1:-len(a)-1:-1],也就是 从最后一个元素到第一个元素复制一遍 ,即 倒序

具体实例

案例 1

a = 'python'
b = a[::-1]
print(b) # nohtyp (逆序,步长为 1)

c = a[::-2]
print(c) # nhy (逆序,步长为 2)

# 从后往前数的话,最后一个位置为 -1
d=a[:-1] # 从位置 0 到位置 -1 之前的数
print(d) # pytho (正序)

e=a[:-2] # 从位置 0 到位置 -2 之前的数
print(e) # pyth (正序)

案例 2

import numpy as np
a=np.random.rand(5)
print(a)
[ 0.64061262 0.8451399  0.965673  0.89256687 0.48518743]
  
print(a[-1]) ### 取最后一个元素
[0.48518743]
  
print(a[:-1]) ### 除了最后一个取全部
[ 0.64061262 0.8451399  0.965673  0.89256687]
  
print(a[::-1]) ### 取从后向前(相反)的元素
[ 0.48518743 0.89256687 0.965673  0.8451399  0.64061262]
  
print(a[2::-1]) ### 取从下标为 2 的元素翻转读取
[ 0.965673 0.8451399  0.64061262]