Python 中的[:-1]
    
    Vaibhav Vaibhav
    2023年10月10日
    
    Python
    Python List
    
![Python 中的[:-1]](/img/Python/feature-image---negative-index-python.webp) 
切片是编程语言中的一种操作,我们可以对对象序列或对象数组或字符串执行该操作。在切片中,我们使用函数和更简单的符号对数据结构进行切片,以获得子字符串或子序列,或原始数据结构的子数组。
在 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]
        Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
    
作者: Vaibhav Vaibhav
    
