列表中的字符串与字符串python匹配

时间:2016-08-12 18:18:46

标签: python-2.7 search string-matching

说我有一个列表var url = "https://localhost/api/1/databases/geolocation/collections/boom/"+globalData._id.$oid+"?apiKey=veTqID_gkb74tG-yL4MGcS1p2RRBP1Pf" if(url.indexOf(UP) !== -1){ var IP = GetIPfromConfig(); url = url.replace(/localhost/, IP); }

我有一个参数列表match = ['one', 'two', 'three']

我想只对项目进行操作,如果它与foo = ['something', 'something_two', 'something', (...)]列表中的任何项目匹配:

match

但我不知道如何制作它,以便for each in foo: for match_item in match: if match_item not in each: no_match = True break if no_match: break # do the desired operations 遇到'something_two'并且打破所有循环时匹配不会失败。 'one'中的项目只是match项目中整个字符串的一部分,这就是我在foo中循环浏览项目列表的原因。

接近这个的好方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用带有条件的生成器表达式来缩小列表:

for each in (item for item in foo if item in match):
    # do the desired operations

或使用filter函数:

for each in filter(lambda item: item in match, foo):
    # do the desired operations

答案 1 :(得分:0)

我能想到的最简单的方法是

for item in foo:
    if item in match:
        # do desired operations

或者如果你想对列表本身进行操作

for i in range(len(foo)):
    if foo[i] in match:
        # do desired operation on foo[i]