1在Python中的意思?

可能重复:
Python切片符号

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

if message.startswith('<stream:stream'):
    message = message[:-1] + ' />'

我明白如果' message<stream:stream开始,那么需要附加一些东西。 然而,我似乎无法弄清楚它应该附加在哪里。 我完全不知道什么:-1表示。 我做了几次Google搜索,结果没有。

有人会这样解释这是什么吗?


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

例如,

>>> a = [1,2,3,4,5,6]
>>> a[:-1]
[1, 2, 3, 4, 5]

它是这样工作的

a[start:end]

>>> a[1:2]
[2]

a[start:]

>>> a[1:]
[2, 3, 4, 5, 6]

a[:end]
你的情况

>>> a = [1,2,3,4,5,6]
>>> a[:-1]
[1, 2, 3, 4, 5]

a[:]

>>> a[:]
[1, 2, 3, 4, 5, 6]

它被称为切片,它返回message所有内容,但是是最后一个元素。

理解这个最好的方法是用例子:

In [1]: [1, 2, 3, 4][:-1]
Out[1]: [1, 2, 3]
In [2]: "Hello"[:-1]
Out[2]: "Hell"

你总是可以用任何数字代替-1

In [4]: "Hello World"[:2] # Indexes starting from 0
Out[4]: "He"

最后的索引不包括在内。


这就是所谓的slicing

“返回代表由范围(开始,停止,步进)指定的一组索引的切片对象。”
- 从此链接:http://docs.python.org/2/library/functions.html#slice

您会注意到它与范围参数类似,并且: part会返回整个迭代,因此-1是除最后一个索引之外的所有内容。

以下是切片的一些基本功能:

>>> s = 'Hello, World'
>>> s[:-1]
'Hello, Worl'
>>> s[:]
'Hello, World'
>>> s[1:]
'ello, World'
>>> s[5]
','
>>>

遵循这些论点:

a[start:stop:step]

要么

a[start:stop, i] 
链接地址: http://www.djcxy.com/p/26735.html

上一篇: 1 mean in python?

下一篇: What does list[x::y] do?