匹配列表python中的字符串

时间:2014-08-05 15:27:44

标签: python string

我有一个如下的python列表

 List=['\Opt\mydata.cab','\my\ginger','\my\garbage','\my\hfs']

我有一个字符串,如下所示

strin1="mydata\opt\mydata.cab"

是否有任何简单的方法来匹配列表'\ opt \ mydata.cab'中的字符串,没有for循环,如下所示

if strin1 in List:
                print(strin1)

1 个答案:

答案 0 :(得分:4)

不,Python没有这样的东西。但是你可以随时使用any这样的功能

if any(item in strin1 for item in List):

不过,这将寻找完全匹配。如果您想要不区分大小写,则可以将两边都转换为小写。

使用any的优点是

  1. 您不必自己动手

  2. 第一次满足条件时立即短路

  3. 适用于任何可迭代的

  4. 如果您想获得匹配的项目,可以使用next这样的功能

    next(item for item in List item in item in strin1)
    

    如果没有匹配,您也可以传递要返回的默认值,例如

    next(item for item in List item in item in strin1, None)