в чем здесь польза от [-1] и [0]? - PullRequest
0 голосов
/ 15 октября 2018

Я хотел бы знать, для чего здесь используются значения [-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 голосов
/ 15 октября 2018

Для первой итерации 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'
0 голосов
/ 15 октября 2018

Это просто индексация в списках.Давайте посмотрим, как это работает:

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

У нас есть два элемента в списке, созданном с помощью split.Списки индексируются от 0, поэтому 1 - это «второй элемент», а -1 - «последний элемент».В данном случае это один и тот же элемент, поэтому он работает как для 1, так и для -1.Но на самом деле это работает только потому, что у вас есть список из двух элементов:

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

Если бы у вас было больше, результат не был бы таким:

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

И тогдаТо же самое происходит с новой строкой, которую мы получили.Список, а затем индекс, выбирающий первый элемент:

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

И это все волшебство.

0 голосов
/ 15 октября 2018

split создает список.Остальное - просто индексация списка.Отрицательные индексы отсчитываются с конца, поэтому [-1] является элементом last списка, созданного первым split.Следующий [0] индекс означает первый элемент списка, созданный вторым split (так же, как это происходит почти во всех языках).

С [-1] и [1] работать так же, это, вероятно, означает, что ваш список содержит ровно 2 элемента, поэтому его последний (-1) элемент совпадает со вторым ([1]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...