匹配python列表中的字符串
我有一个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\
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
循环。