我想知道[-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)
谢谢!
答案 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'