Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配python列表中的字符串_Python_String - Fatal编程技术网

匹配python列表中的字符串

匹配python列表中的字符串,python,string,Python,String,我有一个python列表,如下所示 List=['\Opt\mydata.cab','\my\ginger','\my\garbage','\my\hfs'] 我有一个字符串,如下所示 strin1="mydata\opt\mydata.cab" if strin1 in List: print(strin1) 是否有任何简单的方法可以匹配列表'\Opt\mydata.cab'中的字符串,而不使用下面给出的for循环 strin1="mydata\opt\

我有一个python列表,如下所示

 List=['\Opt\mydata.cab','\my\ginger','\my\garbage','\my\hfs']
我有一个字符串,如下所示

strin1="mydata\opt\mydata.cab"
if strin1 in List:
                print(strin1)
是否有任何简单的方法可以匹配列表'\Opt\mydata.cab'中的字符串,而不使用下面给出的for循环

strin1="mydata\opt\mydata.cab"
if strin1 in List:
                print(strin1)

不,Python没有类似的东西。但是您可以始终使用
这样的任何
函数

if any(item in strin1 for item in List):
next(item for item in List if item in strin1)
next(item for item in List if item in strin1, None)
不过,这将寻找精确的匹配。如果需要不区分大小写的匹配,可以将两侧都转换为小写

使用
any
的优点如下

  • 您不必使用自己的函数

  • 当第一次满足条件时,它立即短路

  • 它适用于任何一种情况

  • 如果您想获得匹配的项目,可以像这样使用
    next
    函数

    if any(item in strin1 for item in List):
    
    next(item for item in List if item in strin1)
    
    next(item for item in List if item in strin1, None)
    
    如果没有匹配项,也可以传递要返回的默认值,如下所示

    if any(item in strin1 for item in List):
    
    next(item for item in List if item in strin1)
    
    next(item for item in List if item in strin1, None)
    

    如何打印此“项目”@user1654136当然,我在答案中包含了一种方法。请检查。不确定自2014年以来发生了什么变化,但我会这样写:
    下一步(如果项目中有字符串,则为项目列表中的项目)
    。没有
    for
    循环。