Усечение строки в python

Кто-то дал мне синтаксис для усечения строки следующим образом:

string = "My Text String"

print string [0:3] # This is just an example

Я не уверен, что это называется (синтаксис строки [0: 3]), поэтому мне было трудно найти его в Интернете и понять, как это работает. Пока я думаю, что он работает так:

  • string [0: 3] # возвращает первые 3 символа в строке
  • string [0: -3] # вернет последние 3 символа строки
  • string [3: -3] # кажется, усекает первые 3 символа и последние 3 символа
  • string [1: 0] # Я возвращаю 2 одинарные кавычки.... не уверен, что это делает
  • string [-1:1] # тот же, что и последний

В любом случае, возможно, есть несколько других примеров, которые я могу добавить, но я хочу сказать, что я новичок в этой функции, и мне интересно, как это называется, и где я могу найти дополнительную информацию об этом. Я уверен, что где-то я просто отсутствовал.

Спасибо за любые предложения, Mike

Ответ 1

Он называется срезом:

<сильные > s [I: J: K]

Срез s от я до j определяется как последовательность элементов с индекс k такой, что я <= k < к. Если я или j больше len (s), используйте Len (ы). Если я опущено или None, используйте 0. Если j опущено или None, используйте Len (ы). Если я больше или равно j, срез пуст.

источник

Ответ 2

Как @Uku и @thebjorn сказали, что он называется Slicing

Но один простой способ подумать - рассмотреть String как список, например, вы можете сделать:

text = 'Any String'
for letter in text:
    print letter

И то же самое, если вы хотите получить конкретную букву внутри строки:

>> text = 'Any String'
>> text[4]
'S'

ps.: Помните, что он основан на нулевом значении, поэтому текст [4] возвращает 5-ю букву.

Используя Slice, он вернет текст "подстроки" [i: j] из вашей исходной строки, где "i" - это начальный индекс (включительно), а "j" - конечный индекс (исключительный), например:

>> text = 'Any String'
>> text[4:6] # from index 4 to 6 exclusive, so it returns letters from index 4 and 5
'St'
>> text[0:4]
'Any '
>> text[:4] # omiting the "i" index means i = 0
'Any '
>> text[4:] # omitting the "j" index means until the end of the string

Отрицательный индекс относится к концу строки, как замена подстановки из отрицательного индекса на "len (text) + i".

В нашем случае len (text) равно 10, отрицательный индекс -1 будет похож на текст [9], чтобы получить последний элемент, -2 вернет последний, но один элемент и т.д.

В приведенных вами примерах строка [0: -3] должна возвращать все, кроме последних трех символов, а строка [3: -3] должна возвращать все, кроме первых 3 и последних 3.

Надеюсь, что это поможет.