Вывести индекс элемента строки python

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

В этом посте мы обсудим, как найти индекс первого вхождения символа в строку в Python.

1. Использование find() функция

Стандартным решением для поиска позиции символа в строке является использование find() функция. Возвращает индекс первого вхождения в строку, где найден символ. Он возвращается -1 когда персонаж не найден.

2. Использование index() функция

В качестве альтернативы вы можете использовать index() функция, похожая на find() функционировать, но повышает ValueError когда персонаж не найден.

3. Использование enumerate() функция

Вот решение с использованием enumerate() работа с генераторами. Это полезно, когда вам нужно найти положение всех символов в строке, которые удовлетворяют условию.

4. Использование more_itertools.locate() функция

Наконец, вы можете использовать locate() функцию от more_itertools Модуль Python для поиска символов в строке. Он возвращает индекс каждого символа в строке, для которой возвращается указанный предикат. True .

Это все, что касается поиска индекса символа в строке в Python.

Средний рейтинг 4.97 /5. Подсчет голосов: 31

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Индексация и разделение строк в Python 3

Умение работать со строками очень важно в любом языке программирования. Сегодня мы расскажем про строки в Python: что это такое, как найти индекс в строке python , какие есть методы работы с индексами.

Строки

Строки – это последовательности символьных данных, которые, как и любые другие типы данных в языке python на основе последовательностей, могут быть проиндексированы. Чтобы задать строку, надо заключить последовательность символов (буквы, цифры, пробелы, знаки препинания и т.д.) в одинарные, двойные или тройные кавычки. Индексирование символов начинается с нуля, и каждый символ в строке имеет собственный индекс. Индекс последнего символа на единицу меньше длины строки.

Если мы проверим тип переменной string , то получим: str .

Индексы

Числовые индексы могут быть положительными и отрицательными. Чтобы обратиться к символу по индексу, надо указать его в квадратных скобках [] . Если ссылаться на конкретный индекс, то можно получить символ, которому он соответствует:

print('4-й символ: ', string[4])
4-й символ: o

В нашей строке символ «o» имеет индекс 4.

Если мы попытаемся обратиться к символу по индексу, которого в строке нет, то получим ошибку:

print('15-й символ: ', string[15])
IndexError: string index out of range

Чтобы узнать максимальный индекс в строке можно отнять 1 от длины строки так как индексация начинается с 0:

print('Максимальный индекс в строке: ',len(string) - 1)
Максимальный индекс в строке: 14

При использовании индексы могут быть не только положительными, но и отрицательными. В этом случае индексация в Python идет с конца:

print('-1-й символ в строке: ', string[-1])
-1-й символ: !

Индекс -1 имеет последний символ строки.

Срезы строк

Можно выводить не только символ с конкретным индексом, но и диапазон символов в строке – подстроку. Для этого используется оператор нарезки, а фрагмент строки, который получается в итоге, называется срезом.

print('Символы с 1 по 6: ', string[1:6])
Символы с 1 по 6: e lov

В данном примере 1 – индекс начала среза, а 6 – индекс окончания среза. В подстроку входят символы с 1 по 5 включительно.

В случае, если требуется получить подстроку с 0 символа, то индекс начала среза можно опустить:

print('Символы с 0 по 6: ', string[:6])
Символы с 0 по 6: We lov

Аналогично в случае, если мы хотим получить срез до конца строки, мы можем опустить индекс окончания среза.

При разделении строк в Python 3 на срезы также можно использовать индексы с отрицательными значениями. Отрицательные индексы начинаются с -1 и уменьшаются при отдалении от конца строки:

print('Символы с -1 по -7: ', string[-7:-1])
Символы с -1 по -7: Python

Если не указывать индексы начала и конца среза, то мы получим всю строку:

print('Строка: ', string[:])
Строка: We love Python!

В случае с получением среза допускается указывать индексы, которые выходят за пределы строки:

print('Символы с 6 по 100: ', string[6:100])
Символы с 6 по 100: e Python!

При создании срезов также можно использовать еще один параметр – шаг. Шаг показывает, на сколько элементов требуется сдвинуться после получения символа. В примерах, рассмотренных выше, мы не указывали шаг, в таких случае используется значение по умолчанию, равное 1.

print('Подстрока с шагом 3: ', string[0:10:3])
Подстрока с шагом 3: Wley

Мы получили каждый третий элемент: W e l ov e P y thon!

Мы можем использовать шаг без указания начала и конца среза – в таком случае подстрока будет составляться из каждого n-ого элемента по всей строке.

print('Подстрока с шагом 3: ', string[::3])
Подстрока с шагом 3: Wleyo

Значение шага также может быть отрицательным.

Методы

Существует несколько методов, которые позволяют вести подсчет строк и выводить индексы строки python. Один из таких методов был рассмотрен выше: len(string) – длина строки.

Помимо длины строки мы можем также подсчитать количество вхождения какого либо символа или подстроки с помощью метода count() :

print('Количество вхождений символа e:', string.count('e'))
Количество вхождений символа e: 2

Следующий метод позволяет определить индекс символа или подстроки в исходной строке:

print('Индекс символа e:', string.find('e'))
Индекс символа e: 1

Первый символ «e» появляется на позиции с индексом 1. В случае если такой элемент не найден, метод вернет -1. Если мы находим индекс подстроки, мы получаем индекс ее первого символа:

print('Индекс подстроки love:', string.find('love'))
Индекс подстроки love: 3

Если нам нужно найти подстроку с определенного индекса, мы можем указать диапазон символов, в котором следует искать:

print('Индекс символа e:', string.find('e', 4,9))
Индекс символа e: 6

В случае необходимости получить максимальный индекс элемента в строке мы можем воспользоваться методом rfind() . Он работает аналогично find() , с той разницей, что find() находит минимальный индекс элемента (первое вхождение элемента в строку).

Для поиска подстроки можно воспользоваться методами index() и rindex() . Они работают аналогично find() и rfind() , однако в случае если подстрока не найдена возвращают ошибку:

ValueError: substring not found

Заключение

В этот раз мы рассмотрели особенности типов данных строки, индексацию и срез строк в Python 3 . Эти базовые знания пригодятся при выполнении самых разных задач с одним из самых популярных языков программирования . Дополнительную информацию вы можете найти в документации , а также в статьях о Python в блоге cloud.timeweb.com .

Источник

Строковая функция str.index() в Python

Функция str.index() в Python возвращает наименьший индекс, в котором находится указанная подстрока. Если подстрока не найдена, возникает ошибка ValueError.

Синтаксис

Значение начального параметра по умолчанию – 0, и это необязательный аргумент.

Значение конечного аргумента по умолчанию – длина строки, это необязательный аргумент.

Нам следует использовать функцию index(), когда мы хотим узнать позицию индекса подстроки. Для проверки наличия подстроки мы можем использовать оператор in.

Сравнение index() и find()

Функция index() вызывает ValueError, если подстрока не найдена, тогда, как функция find() возвращает – 1. Это единственное различие между этими функциями.

Примеры

Давайте посмотрим на несколько простых примеров функции index().

s = 'abcd1234dcba' print(s.index('a')) print(.index('cd')) print(s.index('1', 0, 5))

Теперь давайте посмотрим на другой пример, где подстрока отсутствует и выбрасывается ValueError. Я буду использовать блок try-except, чтобы перехватить исключение и распечатать его сообщение.

s = 'abcd1234dcba' try: print(s.index('1', 0, 2)) except ValueError as ve: print(ve)

Вывод: подстрока не найдена.

rindex()

Метод строки rindex() в Python аналогичен index(), за исключением того, что поиск выполняется справа налево.

s = 'abcd1234dcba' print(s.rindex('a')) print(s.rindex('cd')) print(s.rindex('1', 0, 5)) try: print(s.rindex('1', 0, 2)) except ValueError as ve: print(f'Error Message = ')
11 2 4 Error Message = substring not found

Как найти все индексы для подстроки?

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

def find_all_indexes(input_str, search_str): l1 = [] length = len(input_str) position = 0 while position < length: try: i = input_str.index(search_str, position) l1.append(i) position = i + 1 except ValueError as ve1: # finally exception will be raised because all the indexes are found return l1 s = 'abaacdaa12aa2' print(find_all_indexes(s, 'a')) print(find_all_indexes(s, 'aa'))

Источник

Читайте также:  What is apache web server in php
Оцените статью