Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как лучше организовать нахождение строки в строке Python?

  1. Как лучше организовать нахождение строки в строке Python?

    Привет ребята! Я ковыряюсь в своем коде и нужно реализовать нахождение строки в строке Python. Кто чем пользуется? Какие есть крутые методы или трюки, чтобы это сделать? Мож кто шарит какой подход быстрее/лучше? Описание методов и примеры кода будут просто супер!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Йо, лучшее и простое решение использовать оператор 'in'. Работает на ура:
    Программный код:
      string1 'hello'
      
    string2 'ell'
      
    if string2 in string1:
      \    print(
    'Found!')
      else:
      \    print(
    'Not found.'
    Также есть методы find() и index():
    Программный код:
      pos string1.find(string2)
      if 
    pos != -1:
      \    print(
    f'Found at {pos}')
      else:
      \    print(
    'Not found.'
    Что до производительности, 'in' обычно поэффективнее.

  4. Цитата Сообщение от Нано Хакер
    Йо, лучшее и простое решение использовать оператор 'in'. Работает на ура:
    Программный код:
      string1 'hello'
      
    string2 'ell'
      
    if string2 in string1:
      \    print(
    'Found!')
      else:
      \    print(
    'Not found.'
    Также есть методы find() и index():
    Программный код:
      pos string1.find(string2)
      if 
    pos != -1:
      \    print(
    f'Found at {pos}')
      else:
      \    print(
    'Not found.'
    Что до производительности, 'in' обычно поэффективнее.
    О, метод find() мне как-то непривычен. Всегда юзал 'in' и не парился. Но полезно знать, спасибо!

  5. Для более сложных задач можно юзать регулярки. Модуль re очень мощный:
    Программный код:
      import re
      string1 
    'hello world'
      
    pattern 'ello'
      
    if re.search(patternstring1):
      \    print(
    'Pattern found')
      else:
      \    print(
    'Pattern not found'
    Очень гибкий инструмент!

  6. Цитата Сообщение от StarNomad
    Для более сложных задач можно юзать регулярки. Модуль re очень мощный:
    Программный код:
      import re
      string1 
    'hello world'
      
    pattern 'ello'
      
    if re.search(patternstring1):
      \    print(
    'Pattern found')
      else:
      \    print(
    'Pattern not found'
    Очень гибкий инструмент!
    Да, регулярки это мощь. Только вот синтаксис запаристый временами, можно башку сломать

  7. Есть еще один прикольный метод - string method count(), который может помочь, если надо найти кол-во вхождений подстроки:
    Программный код:
      count string1.count(string2)
      print(
    f'Occurrences: {count}'
    Правда это немного другое, но иногда полезно!

  8. Цитата Сообщение от QuantumThief
    Есть еще один прикольный метод - string method count(), который может помочь, если надо найти кол-во вхождений подстроки:
    Программный код:
      count string1.count(string2)
      print(
    f'Occurrences: {count}'
    Правда это немного другое, но иногда полезно!
    Никогда не юзал count() так, на удивление. Любопытно. Годно даже для анализа текста.

  9. На случай разных регистров, не забывайте про метод lower() для нормализации строки. Так мы исключаем косяки с регистром:
    Программный код:
      string1 'Hello World'
      
    string2 'hello'
      
    if string2.lower() in string1.lower():
      \    print(
    'Found!')
      else:
      \    print(
    'Not found.'
    Выручил меня не раз!

  10. Цитата Сообщение от Ирэн
    На случай разных регистров, не забывайте про метод lower() для нормализации строки. Так мы исключаем косяки с регистром:
    Программный код:
      string1 'Hello World'
      
    string2 'hello'
      
    if string2.lower() in string1.lower():
      \    print(
    'Found!')
      else:
      \    print(
    'Not found.'
    Выручил меня не раз!
    О, золотые слова про lower()! Столько багов из-за регистра было, просто жесть.

Страница 1 из 2 12 ПоследняяПоследняя