首页 > 解决方案 > “字符串中的字符”python方法有效吗?

问题描述

Python 内置的查找子字符串的方法是否足够有效地查找字符匹配?我在某处读到,即使找到匹配项,它也会继续循环遍历字符串直到最后,但无法在互联网上找到相关信息。这种方法在 Python 3.7 中实际上是否有效,或者我应该像这样编写自己的函数(或者也许有更有效的方法?):

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

标签: pythonpython-3.xsubstring

解决方案


那肯定会短路(只要你点击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 级循环更有效。


推荐阅读