What does :-1 mean in python?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
The Python Slice Notation
我正在尝试将一些python代码移植到c,但我遇到了这一行,我无法理解它的含义:
1 2 | if message.startswith('<stream:stream'): message = message[:-1] + ' />' |
我知道,如果‘
有人能解释一下这是怎么回事吗?
它是列表索引,返回除最后一个元素
例如,
1 2 3 | >>> a = [1,2,3,4,5,6] >>> a[:-1] [1, 2, 3, 4, 5] |
它是这样工作的
1 2 | >>> a[1:2] [2] |
1 2 | >>> a[1:] [2, 3, 4, 5, 6] |
1 2 3 | >>> a = [1,2,3,4,5,6] >>> a[:-1] [1, 2, 3, 4, 5] |
1 2 | >>> a[:] [1, 2, 3, 4, 5, 6] |
它被称为切片,它返回
理解这一点的最好方法是举例:
1 2 3 4 | In [1]: [1, 2, 3, 4][:-1] Out[1]: [1, 2, 3] In [2]:"Hello"[:-1] Out[2]:"Hell" |
您可以用任何数字替换
1 2 | In [4]:"Hello World"[:2] # Indexes starting from 0 Out[4]:"He" |
不包括最后一个索引。
它叫
返回一个切片对象,该对象表示由范围(开始、停止、步骤)指定的一组索引。-从这个链接:http://docs.python.org/2/library/functions.html slice
您会注意到它类似于范围参数,并且
以下是切片的一些基本功能:
1 2 3 4 5 6 7 8 9 10 | >>> s = 'Hello, World' >>> s[:-1] 'Hello, Worl' >>> s[:] 'Hello, World' >>> s[1:] 'ello, World' >>> s[5] ',' >>> |
遵循这些论点:
1 | a[start:stop:step] |
或
1 | a[start:stop, i] |
要直接回答您的问题:
1 | if message.startswith('<stream:stream'): message = message[:-1] + ' />' |
这基本上是检查,如果
因此,由于消息是一个XML字符串,它将使元素成为一个空元素,从而关闭自身。
返回
请参见教程。