>>> c=bob[0].split() >>> c ['Bob', 'Smith'] >>> c[1] 'Smith' >>> c[0] 'Bob' >>> c[-1] 'Smith' >>> c[-2] 'Bob'
Ответ
Некоторые типы в Python вроде списков и строк поддерживают отрицательные индексы. Они позволяют брать элементы с конца: c[-1] это последний элемент, c[-2] предпоследний и так далее. Отрицательные индексы можно переписать на вычисление положительного индекса, примерно так: c[len(c) - 1], c[len(c) - 2] и так далее.
В документации Python есть наглядная диаграммка, показывающая, как нумеруются символы в строке (для списков тоже применимо):
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
Тем не менее, проверка на выход за пределы списка/строки всё ещё имеется:
>>> s = 'Python'
>>> s[6]
Traceback (most recent call last):
File "
>>> s[-7]
Traceback (most recent call last):
File "
Кстати, с помощью расширенного синтаксиса срезов можно перевернуть список, если указать отрицательный шаг:
>>> c = ['Bob', 'Smith']
>>> c[::-1]
['Smith', 'Bob']
Комментариев нет:
Отправить комментарий