在line.split('+')[ - 1]中,方括号中的-1表示在Python中

时间:2014-01-30 17:06:11

标签: python syntax

我们假设我们有这个代码:

name = line.split('+')[-1]

-1做什么?我已经在各种代码中看到它,但不知道它的作用是什么? 如果有[0][1]

会有什么区别?

5 个答案:

答案 0 :(得分:14)

您提供的代码行基本上是做三件事:

  1. 它使用字符串line并使用str.split+上将其拆分。这将返回一个子串列表:

    >>> line = 'a+b+c+d'
    >>> line.split('+')
    ['a', 'b', 'c', 'd']
    >>>
    
  2. [-1]然后将位于-1位置的列表编入索引。这样做将返回最后一项:

    >>> ['a', 'b', 'c', 'd'][-1]
    'd'
    >>>
    
  3. 需要此项目并将其指定为变量name的值。

  4. 以下是上述概念的更完整演示:

    >>> line = 'a+b+c+d'
    >>> line.split('+')
    ['a', 'b', 'c', 'd']
    >>> lst = line.split('+')
    >>> lst[-1]
    'd'
    >>> lst[0]
    'a'
    >>> lst[1]
    'b'
    >>> lst[2]
    'c'
    >>> lst[3]
    'd'
    >>>
    

答案 1 :(得分:1)

str.split返回一个列表:

>>> '1+2+3'.split('+')
['1', '2', '3']

list[-1]产生最后一项(负指数从-1开始)

>>> '1+2+3'.split('+')[-1]
'3'
>>> '1+2+3'.split('+')[0] # the first item (Python index starts from 0)
'1'
>>> '1+2+3'.split('+')[1]
'2'

请参阅Lists - Python tutorial(包含索引,切片)。

答案 2 :(得分:1)

Python中的负索引是以-1开头从右到左以相反顺序访问元素的语法糖。因此-1是最后一项,-2是倒数第二项,依此类推 - 第一项是lst[-len(lst)]。例如:

lst = [1, 2, 3]
lst[-1]
=> 3
lst[-2]
=> 2
lst[-3]
=> 1

答案 3 :(得分:0)

Split将创建列表,然后您将使用[-1]获取最后一个元素

答案 4 :(得分:0)

好的,为了了解这里发生的事情,我们需要了解列表,列表的split()和切片函数。

例如:

给定下面的字符串,让我们分割它: •行='a + b + c + d' •name = line.split('+')

拆分字符串后,它将成为一个列表。如下所示 •['a','b','c','d']

请注意:'+'称为分隔符:表示,字符串将根据可用的'+'数量进行分隔,因此在上面的列表中。

分隔符(始终在正常括号中)访问列表中的元素后的方括号  使用索引访问列表,正索引以0开头(这是列表的第一个元素。例如,name [0]正在访问列表的第一个元素“ a”),并且当负索引开始时它从左到右操作从-1,从右到左(在上面的示例中,“ d”是索引-1) 使用您的示例问题, name = line.split('+')[-1],这将返回列表中的最后一项,即“ d” name = line.split('+')[0],它将返回列表中的第一项,即“ a” name = line.split('+')[1],它将返回列表中的第二项,即“ b”

相关问题