Найти индекс символа в строке Python
В этом посте мы обсудим, как найти индекс первого вхождения символа в строку в Python.
1. Использование
find()
функцияСтандартным решением для поиска позиции символа в строке является использование find()
функция. Возвращает индекс первого вхождения в строку, где найден символ. Он возвращается -1
когда персонаж не найден.
1 2 3 4 5 6 7 8 9 10 11 12 | if __name__ == ‘__main__’:
s = «Techie» ch = ‘e’
index = s.find(ch)
if index != -1: print(f»Found character ‘{ch}’ at index {index}») # Найден символ ‘e’ в индексе 1 else: print(«Character not found»)
|
Скачать Выполнить код
2.
Использованиеindex()
функцияВ качестве альтернативы вы можете использовать
функция, похожая на find()
функционировать, но повышает ValueError
когда персонаж не найден.
1 2 3 4 5 6 7 8 9 10 11 | if __name__ == ‘__main__’:
s = «Techie» ch = ‘e’
try: index = s.index(ch) print(f»Found character ‘{ch}’ at index {index}») # Найден символ ‘e’ в индексе 1 except: print(«Character not found»)
|
Скачать Выполнить код
3. Использование
enumerate()
функцияВот решение с использованием enumerate()
работа с генераторами. Это полезно, когда вам нужно найти положение всех символов в строке, которые удовлетворяют условию.
1 2 3 4 5 6 7 8 | if __name__ == ‘__main__’:
s = «Techie» ch = ‘e’
indexes = [i for i, c in enumerate(s) if c == ch] print(f»Found character ‘{ch}’ at index {indexes}») # Найден символ ‘e’ по индексу [1, 5]
|
Скачать Выполнить код
4. Использование
more_itertools.locate()
функцияНаконец, вы можете использовать locate()
функцию от more_itertools
Модуль Python для поиска символов в строке. Он возвращает индекс каждого символа в строке, для которой возвращается указанный предикат. True
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import more_itertools
if __name__ == ‘__main__’:
s = «Techie» ch = ‘e’
index = next(more_itertools. locate(s, lambda x: x == ch))
if index != -1: print(f»Found character ‘{ch}’ at index {index}») # Найден символ ‘e’ в индексе 1 else: print(«Character not found»)
|
Скачать код
Это все, что касается поиска индекса символа в строке в Python.
Оценить этот пост
Средний рейтинг 4.95/5. Подсчет голосов: 21
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
python — Как заменить символ в строке по индексу?
Вопрос задан
Изменён 29 дней назад
Просмотрен 7k раза
Например: в строке AABAABAAАA нужно заменить именно 6й символ(по индексу 5) на A.
- python
- python-3.x
- строки
Строки в Python неизменяемы, поэтому для этой операции нет встроенного метода. Вам придётся создать новую строку на основе исходной.
Наиболее быстрый способ — взять срез до и после необходимого символа:
i = 5 s = 'AABAABAAАA' result = s[:i] + 'A' + s[i+1:] # AABAAAAAАA
Ещё вы можете преобразовать строку к списку. Список изменяемый, и вы можете перезаписать один из его элементов, а затем преобразовать список обратно в строку:
s = 'AABAABAAАA' li = list(s) li[5] = 'A' result = ''.join(li) # AABAAAAAАA
Тип bytes — это неизменяемая последовательность байтов. Каждый элемент такой последовательности может хранить целое число от О до 255, обозначающее код символа. Этот тип поддерживает боль- шинство строковых методов, однако при доступе по индексу возвра- щается целое число, а не символ.
Тип bytearray — это изменяемая последовательность байтов. Данный тип аналогичен типу bytes, но вы можете изменять элементы такой строки по индексу. Также этот тип содержит дополнительные методы, которые позволяют добавлять и удалять элементы.
s = bytearray('AABAABAAАA', 'utf-8') s[5] = bytes('A', 'utf-8')[0] print(str(s, 'utf-8'))
Взято из Справочник PYTHON. Кратко, быстро, под рукой | Дубовик Е. В., Кольцов Д. М.
0
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Питон | Найти позицию символа в заданной строке
Улучшить статью
Сохранить статью
- Уровень сложности: Easy
- Последнее обновление: 12 янв, 2023
Улучшить статью
Сохранить статью
Учитывая строку и символ, ваша задача состоит в том, чтобы найти первую позицию символа в строке с помощью Python. Эти типы задач представляют собой очень конкурентное программирование, когда вам нужно найти позицию символа в строке. Давайте обсудим несколько способов решения проблемы.
Метод 1: Получить позицию символа в Python с помощью rfind()
Python String Метод rfind() возвращает самый высокий индекс подстроки, если он найден в данной строке. Если не найдено, возвращается -1.
Python3
|
Выход
3
Метод 2: Получить позицию символа в Python с помощью регулярного выражения
Метод re. search() либо возвращает None (если шаблон не совпадает), либо re.MatchObject содержит информацию о совпадающей части строки. Этот метод останавливается после первого совпадения,
Python3
|
Output
starting index 5 начальный и конечный индекс (5, 8)Method 3: Get the position of a character in Python using index()
This Method raises Value Error in case the character is not present
Python3
0036 |
Вывод:
initial_strings : xyze character_to_find : б Нет такого символа в строке xyzeСпособ 4. Получение позиции символа в Python с помощью цикла
В этом примере мы будем использовать цикл Python для определения позиции символа в заданной строке.
Python3
|
Вывод :
Initialc_string:initialc character_to_find : б Символ b присутствует в 2Метод 5: Получить позицию символа в Python, используя str.find
Этот метод возвращает -1, если символ отсутствует.
Python3
C = 5" C = 5 " C = 5" C = 5 " C . , ini_string, " " ,
|
Выход:
Начальный character_to_find : б Символ b в строке abcdef присутствует на 2 Нет такого символа в строке xyze
Метод 6: получение позиции символа в Python с использованием понимания списка и следующей функции
Этот метод включает использование понимания списка для создания списка кортежей, содержащих индекс и символ для каждого символа в строке. Затем мы можем использовать следующую функцию, чтобы вернуть первый кортеж, символ которого соответствует тому, который мы ищем. Если символ не найден, мы поднимаем ValueError.
Python3
Временная сложность: O(n) Статьи по теме Автор: Джон Пол Мюллер и Обновлено: 27 декабря 2021 г. Из книги: Начало программирования на Python для чайников Строки ничем не отличаются — они наиболее полезны, когда вы можете быстро и без проблем найти то, что вам нужно. Python предоставляет ряд функций для поиска строк. Вот наиболее часто используемые функции: count( str , beg = 0, end =len( string )): подсчитывает, сколько раз str встречается в строке. Вы можете ограничить поиск, указав начальный индекс, используя beg , или конечный индекс, используя 9.0875 конец . endwith( suffix , beg =0, end =len( string )): возвращает True, когда строка заканчивается символами, указанными suffix . Вы можете ограничить проверку, указав начальный индекс, используя beg , или конечный индекс, используя end . find( str , beg =0, end =len( string )): Определяет, является ли str встречается в строке и выводит индекс местоположения. Вы можете ограничить поиск, указав начальный индекс, используя beg , или конечный индекс, используя end . index( str , beg =0, end =len( string )): обеспечивает ту же функциональность, что и find(), но вызывает исключение, когда str не найден. заменить( старый , новый [ max ]): Заменяет все вхождения последовательности символов, указанной в old в строке, на последовательность символов, указанную в new . Вы можете ограничить количество замен, указав значение max . rfind( str , beg =0, end =len( string )): Обеспечивает ту же функциональность, что и find(), но выполняет поиск в обратном направлении с конца строки, а не с начала. rindex( str , beg =0, end =len( string )): обеспечивает ту же функциональность, что и index(), но выполняет поиск в обратном направлении с конца строки, а не с ее начала. startswith( prefix , beg =0, end =len(string)): возвращает True, если строка начинается с символов, указанных префиксом . Вы можете ограничить проверку, указав начальный индекс, используя beg или конечный индекс с использованием end . Открыть окно файла Python. Вы видите редактор, в котором вы можете ввести пример кода. Введите в окно следующий код — нажимая Enter после каждой строки: Пример начинается с создания SearchMe, строки с двумя экземплярами слова . Эти два экземпляра важны, потому что они демонстрируют, как поиск отличается в зависимости от того, где вы начинаете. При использовании find() пример начинается с начала строки. Напротив, rfind() начинается с конца строки. Конечно, вы не всегда будете знать, сколько раз определенный набор символов встречается в строке. Функция count() позволяет определить это значение. В зависимости от типа данных, с которыми вы работаете, иногда данные сильно форматируются, и вы можете использовать определенный шаблон в своих интересах. Например, вы можете определить, заканчивается или начинается конкретная строка (или подстрока) определенной последовательностью символов. Вы можете так же легко использовать эту технику для поиска номера детали. Последний бит кода заменяет apple на car и berry на truck. Обратите внимание на способ размещения кода в две строки. В некоторых случаях ваш код должен быть размещен в нескольких строках, чтобы сделать его более читабельным. Щелкните Выполнить ячейку. Python отображает вывод, показанный на рисунке ниже. Обратите особое внимание на то, что результаты поиска возвращают разные индексы в зависимости от того, где они начинаются в строке. Использование правильной функции при выполнении поиска необходимо для получения ожидаемых результатов. Джон Пол Мюллер — независимый автор и технический редактор, автор более 107 книг и 600 статей. |