#python #string
#python #строка
Вопрос:
Предположим, я объявляю строку, и если я хочу напечатать индекс ‘-1’ с индексом ‘5’; Я получаю ответ, которого я не ожидаю. Просто хотел узнать, как строка проходит в этом случае
>>> str = 'qwerty'
>>> str[-1:5]
''
>>> str[-1:6]
'y'
Комментарии:
1. пожалуйста, используйте какое-то другое имя для имени переменной, как
str
функция
Ответ №1:
Я назвал строку x, чтобы избежать конфликта имен с str.
x = "qwerty"
-1 обозначает последний индекс строки, который равен 5. Из этого вы можете понять, почему результаты вашего среза такие, какие они есть.
x[0:-1] -> x[0:5] -> "qwert"
x[-1:5] -> x[5:5] -> ""
x[-1:6] -> x[5:6] -> "y"
Нижний индекс является инклюзивным, но верхний индекс является эксклюзивным. Например. x[0:0]
не дает вам символов, но x[0:1]
дает вам 0-й индексный символ.
Ответ №2:
В Python нарезка возвращает элементы от начального индекса до конечного индекса МИНУС ОДИН. Итак, если вы печатаете s[-1:5]
, он фактически будет печатать с последнего индекса 5 до индекса 4 (обратите внимание, что это обратный обход, и пока шаг индекса не равен -1, это невозможно). Следовательно, вы получаете пустую строку. s[-1:6]
С другой стороны, если вы печатаете, вы в основном получаете доступ к последнему индексу 5 и 6-1, который снова равен 5. Это эквивалентно s[5:6]
, который вернет последний символ y
.
Ответ №3:
Короткий ответ
потому что -1 и 5 — это одно и то же место
обратите внимание, что таблица при использовании двух форм индексации
вы можете прочитать нарезку и расширенную нарезку в официальной документации, чтобы лучше понять это.
длинный ответ, чтобы понять, как работает нарезка в python
i=0
j=1
s="qwerty"
s[i:j]
ВЫВОД
q
речь идет только о выборе из индекса i до индекса j, поэтому для выбора последней буквы «y» это можно сделать с помощью i=5
и j=6
.. обратите внимание, что индекс 6 не может быть фактически использован, вы просто указываете, что вы будете обрезать с i = 5 и обрезать только один символ 6-5=1
также учтите, что при нарезке есть третий аргумент
s= 'qwerty'
print(s[5:6:1])
даст то же самое
y
когда вы срезаете с start и end одинаково с шагом 1
, вы можете выбрать от end до start, чтобы пересмотреть его, сделав
s= 'qwerty'
print(s[5:-7:-1])
ВЫВОД
ytrewq
Комментарии:
1. Обновил его прямо сейчас