什么:-1意味着在python中?

Swe*_*oij 17 python syntax

可能重复:
Python切片表示法

我正在尝试将一些Python代码移植到C,但我遇到了这一行,我无法弄清楚它的含义:

if message.startswith('<stream:stream'):
    message = message[:-1] + ' />'
Run Code Online (Sandbox Code Playgroud)

我明白,如果' message从那开始,<stream:stream那么需要附加一些东西.但是,我似乎无法弄清楚应该追加的位置.我完全不知道是什么:-1表明.我做了几次谷歌搜索没有结果.

有人会如此善意地解释这是做什么的吗?

eng*_*ree 41

它是列表索引,它返回[:]除最后一个之外的所有元素-1.类似的问题在这里

例如,

>>> a = [1,2,3,4,5,6]
>>> a[:-1]
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

它的工作原理如下

a[start:end]

>>> a[1:2]
[2]
Run Code Online (Sandbox Code Playgroud)

a[start:]

>>> a[1:]
[2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

a[:end]
你的情况

>>> a = [1,2,3,4,5,6]
>>> a[:-1]
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

a[:]

>>> a[:]
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)


小智 7

这称为切片,它返回message除最后一个元素之外的所有内容。

理解这一点的最佳方法是举例:

In [1]: [1, 2, 3, 4][:-1]
Out[1]: [1, 2, 3]
In [2]: "Hello"[:-1]
Out[2]: "Hell"
Run Code Online (Sandbox Code Playgroud)

您可以随时替换-1为任何数字:

In [4]: "Hello World"[:2] # Indexes starting from 0
Out[4]: "He"
Run Code Online (Sandbox Code Playgroud)

不包括最后一个索引。