1。使用in和notinIn和notin是Python中非常常用的关键字,我们将它们归类为隶属运算符。利用这两个成员操作符,我们可以直观清晰的判断一个对象是否在另一个对象中。例子如下:>>>"llo"in"hello,p??ython"True>>>>>>>"lol"in"hello,p??ython"False2.使用find方法使用string对象的find方法。如果找到子串,则返回指定子串在字符串中出现的位置。如果没有找到,则返回-1>>>"hello,p??ython".find("llo")!=-1True>>>"hello,p??ython".find("lol")!=-1False>>3.使用index方法String对象有一个index方法,可以返回指定子串在字符串中第一次出现的索引,如果没有找到会抛出异常,所以使用的时候需要注意捕获它。defis_in(full_str,sub_str):try:full_str.index(sub_str)returnTrueexceptValueError:returnFalseprint(is_in("hello,p??ython","llo"))#Trueprint(is_in("hello,p??ython","lol"))#False4.使用计数法利用指数曲线救国思想,我们也可以使用计数法进行判断。只要判断结果大于0,就说明字符串中存在该子串。defis_in(full_str,sub_str):returnfull_str.count(sub_str)>0print(is_in("hello,p??ython","llo"))#Trueprint(is_in("hello,p??ython","lol"))#False5.通过magic方法在第一种方法中,我们使用in和notin来判断一个子串是否存在于另一个字符中。事实上,当你使用in和不使用in时,Python解释器会首先检查对象是否具有__contains__魔术方法。如果存在就执行,如果不存在,Python会自动遍历整个序列,一旦找到需要的项目就返回True。例子如下:>>>"hello,p??ython".__contains__("llo")True>>>>>>"hello,p??ython".__contains__("lol")False>>>这个用法和usingin和notin的区别,但不排除有人会故意这样写,增加代码的理解难度。6.借助operatoroperator模块是python中内置的运算符函数接口,它定义了一些用于算术和比较内置运算的函数。operator模块是用C实现的,所以它比python代码执行得更快。in操作符中有一个方法可以方便的判断一个子串是否在一个字符串中。>>>importoperator>>>>>>operator.contains("hello,p??ython","llo")True>>>operator.contains("hello,p??ython","lol")False>>>7.使用正则Matching说到搜索功能,Regex绝对可以说是一款专业的工具,不管搜索规则有多复杂,它都能满足你。对于判断一个字符串是否存在于另一个字符串中的需求,使用正则表达式简直是大材小用。importredefis_in(full_str,sub_str):ifre.findall(sub_str,full_str):returnTrueelse:returnFalseprint(is_in("hello,p??ython","llo"))#Trueprint(is_in("hello,p??ython","lol"))#不实【责任编辑:赵宁宁电话:(010)68476606】
