Как найти индекс символа в строке в Python

Строки представляют собой набор символов. Каждый символ в строке занимает определенную позицию, т.е имеет свой индекс. Зная этот индекс, мы можем получить доступ к тому или иному символу. В этой статье мы рассмотрим, как найти индекс символа в строке.

Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU

Как найти индекс символа в строке при помощи функции find()

Функция find() возвращает позицию подстроки. Мы также можем указать начальную и конечную позиции, между которыми хотим искать (по умолчанию поиск происходит от начала до конца строки).

В следующем коде мы используем эту функцию для поиска позиции символа в строке.

s = 'python is fun'
c = 'n'
print(s.find(c))

# 5

Обратите внимание, что функция возвращает позицию символа, идущего в строке первым. То есть мы получили индекс символа “n” из слова “python”, а не из слова “fun”. Также следует помнить, что функция find() возвращает -1, если заданная подстрока отсутствует в строке.

Использование функции rfind()

Эта функция аналогична функции find(), с той лишь разницей, что она возвращает последнюю позицию, на которой расположена искомая подстрока. Например:

s = 'python is fun'
c = 'n'
print(s.rfind(c))

#12

Как найти индекс символа в строке при помощи функции index()

Функция index() тоже позволяет найти индекс подстроки в строке. Как и find(), она возвращает первое вхождение искомого символа в строке. Например:

s = 'python is fun'
c = 'n'
print(s.index(c))

# 5

Разница между функциями index() и find() заключается в том, что функция index() возвращает ValueError, если в строке отсутствует нужный символ.

Использование цикла for для поиска позиции символа в строке

При таком подходе мы перебираем символы строки в цикле и сравниваем каждый символ с искомым. Каждая позиция, по которой найдено совпадение, отмечается и сохраняется в отдельной переменной.

Следующий код реализует эту логику.

s = 'python is fun'
c = 'n'
lst = []
for pos,char in enumerate(s):
    if(char == c):
        lst.append(pos)
print(lst)

#[5, 12]

Мы используем функцию enumerate(), поскольку она упрощает итерацию и присваивает переменную счетчика каждому символу строки.

Это также можно реализовать с помощью list comprehension, что считается более быстрым и чистым решением. Например:

s = 'python is fun'
c = 'n'
print([pos for pos, char in enumerate(s) if char == c])

# [5, 12]

Перевод статьи Manav Narula «Find Character in a String in Python».

1 комментарий к “Как найти индекс символа в строке в Python”

  1. Пингбэк: Как получить последние символы строки в Python

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *