Python 中的[:-1]
Vaibhav Vaibhav
2023年10月10日
切片是编程语言中的一种操作,我们可以对对象序列或对象数组或字符串执行该操作。在切片中,我们使用函数和更简单的符号对数据结构进行切片,以获得子字符串或子序列,或原始数据结构的子数组。
在 Python 中切片
Python 是一种编程语言,这意味着它也支持切片。在 Python 中,主要有两种方式可以执行切片。第一个使用 slice()
函数,第二个使用索引语法。
在 Python 中使用 slice()
构造函数切片
切片构造函数接受三个参数:start
、stop
和 step
。此构造函数创建一个切片对象来拆分字符串或任何对象序列。
start
:这是切片应该开始的起始索引。它的默认值是0
。stop
:这是切片应该结束的结束索引。这是一个强制性的参数。step
:这是在迭代切片过程的序列时应该采取的增量量。它的默认值为1
。
为了更好地理解这个实用程序,让我们看一些例子。请注意,在 Python 中,-1
表示最后一个索引。并且,在索引或迭代时,最终结果中不考虑 stop
索引。操作是在它之前的所有东西上执行的。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slices = [
slice(5),
slice(0, -1),
slice(1, -1, 2),
slice(1, 4, 1),
slice(5, -1),
slice(3, -1, 3),
slice(0, 0),
slice(-1, 0, -1),
slice(-5, 5, -3),
]
for i in range(len(slices)):
print(s[slices[i]])
for i in range(len(slices)):
print(a[slices[i]])
输出:
ABCDE
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
请注意,当单个值传递给 slice()
构造函数时,该值将分配给 stop
索引。这就是为什么对于 slice(5)
,我们得到的输出是 ABCDE
。
在 Python 中使用索引语法切片
在 Python 中,我们可以使用以下语法来执行切片,而不是使用 slice()
构造函数来创建切片对象。
sequence[start:stop:step]
接受的参数与前一种方法相同;真正改变的是编写它们的方式。start
、stop
和 step
的默认值分别是 0
、-1
和 1
。请注意,我们可以跳过参数以使用默认值,但必须编写冒号
。让我们看一些索引语法的例子,以便更好地理解它。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[5])
print(s[:-1])
print(s[0:-1])
print(s[1:-1:2])
print(s[1:4:1])
print(s[5:-1])
print(s[3:-1:3])
print(s[:0])
print(s[-1:0:-1])
print(s[-5:5:-3])
print(a[5])
print(a[:-1])
print(a[0:-1])
print(a[1:-1:2])
print(a[1:4:1])
print(a[5:-1])
print(a[3:-1:3])
print(a[:0])
print(a[-1:0:-1])
print(a[-5:5:-3])
输出:
F
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
6
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
在 Python 中的 [ : -1]
的意义
如我们所见,此语法属于索引语法。[ : -1]
将打印除最后一个之外的所有序列元素。让我们看一些例子来理解这个概念。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[:-1])
print(a[:-1])
输出:
ABCDEFGHIJKLMNOPQRSTUVWXY
[1, 2, 3, 4, 5, 6, 7, 8, 9]
作者: Vaibhav Vaibhav