[-1]和[0]在这里有什么用?

时间:2018-10-15 09:19:48

标签: python split

我想知道[-1]和[0]在这里有什么用。我还在第一次拆分中尝试过[1],但仍能正常工作。

symbols = ["Wiki/ADBE.4", "Wiki/ALGN.4"]

clean_symbols = []

for symbol in symbols:

    symbol = symbol.split("Wiki/")[-1].split(".4")[0]
    print(symbol)
    clean_symbols.append(symbol)

print(clean_symbols)

谢谢!

3 个答案:

答案 0 :(得分:1)

split创建一个列表。剩下的只是列表索引。负索引号从末尾开始计数,因此[-1]是第一个split创建的列表的 last 元素。下一个[0]索引表示第二个split创建的列表的 first 元素(就像几乎所有语言一样)。

由于[-1][1]的工作方式相同,这可能意味着您的列表正好包含2个元素,因此其最后一个(-1)元素与第二个元素([1])相同

答案 1 :(得分:1)

它只是在列表中建立索引。让我们看看它是如何工作的:

let placeholderColor = UIColor.red
self.passwordTextField?.attributedPlaceholder = 
NSAttributedString(string:"placeholderText", attributes: 
[NSAttributedStringKey.foregroundColor : placeholderColor])

我们在列表中有两个项目,是通过split创建的。列表从0开始索引,因此1是“第二个项目”,而-1是“最后一个项目”。在这种情况下,这是同一项目,因此它适用于1和-1。但这确实可以通过以下方式工作,因为您有一个包含两个项目的列表:

>>> symbol = "Wiki/ADBE.4" # this happens in the for loop
>>> symbol.split("Wiki/")
['', 'ADBE.4']

如果您有更多,结果将不一样:

>>> symbol.split("Wiki/")[-1]
'ADBE.4'
>>> symbol.split("Wiki/")[1]
'ADBE.4'

然后我们得到的新字符串也会发生同样的事情。列表,然后是索引,选择第一项:

>>> x = ['first', 'second', 'third']
>>> x[-1]
'third'
>>> x[1]
'second'

这就是魔术。

答案 2 :(得分:0)

对于第一次迭代,split返回我们对最后一个元素感兴趣的列表。因此[-1]

symbol.split("Wiki/") returns ['', 'ADBE.4']
symbol.split("Wiki/")[-1] returns 'ADBE.4'

因此,第二个拆分将返回我们需要第一个元素的列表,因此[0]

'ADBE.4'.split('.4') returns ['ADBE','']
'ADBE.4'.split('.4')[0] returns 'ADBE'