Эффективен ли метод "char in string" python? - PullRequest
0 голосов
/ 15 марта 2020

Является ли Python встроенным методом поиска подстроки достаточно эффективным для поиска совпадения символа? Я где-то читал, что, даже если он находит совпадение, он продолжает циклически проходить по строке до самого конца, но не может найти относительную информацию о inte rnet. Действительно ли этот метод эффективен в Python 3.7 или, может быть, я должен написать свою собственную функцию, например, так (или, может быть, есть более эффективный способ?):

def char_in_str(char:str, string:str):
    for i in string:
        if i == char:
            return True
    return False

1 Ответ

2 голосов
/ 15 марта 2020

Это определенно приведет к короткому замыканию (как только вы нажмете return, функция завершится; она не сможет продолжать искать). Имейте в виду, что эффективная реализация будет выглядеть так:

def char_in_str(char:str, string:str):
    return char in string

или если вы хотите, чтобы она была успешной, когда char на самом деле имеет длину одну строку:

def char_in_str(char:str, string:str):
    return len(char) == 1 and char in string

В обоих В случаях, когда оператор in замыкается, когда он находит совпадение, и, в отличие от вашего кода, реализация реализуется более эффективно в самом интерпретаторе (в CPython, в C), чем Python уровень l oop может быть.

...