我们假设我们有这个代码:
name = line.split('+')[-1]
-1做什么?我已经在各种代码中看到它,但不知道它的作用是什么?
如果有[0]
或[1]
?
答案 0 :(得分:14)
您提供的代码行基本上是做三件事:
它使用字符串line
并使用str.split
在+
上将其拆分。这将返回一个子串列表:
>>> line = 'a+b+c+d'
>>> line.split('+')
['a', 'b', 'c', 'd']
>>>
[-1]
然后将位于-1
位置的列表编入索引。这样做将返回最后一项:
>>> ['a', 'b', 'c', 'd'][-1]
'd'
>>>
需要此项目并将其指定为变量name
的值。
以下是上述概念的更完整演示:
>>> 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”