如何在列表python项中找到字符串

时间:2015-07-16 13:06:02

标签: python list search split find

我需要你的帮助,因为我想在列表中找到一个str来获得完整的项目。

my_list:看起来像:

['Mont Saint Martin, 42 rue de Bordeaux', 'Mont de Marsan, 100 avenue Pierre de Coubertin', 'Lyon, 56 rue du Docteur Alb\xc3\xa9ric Pont', 'Lille, 90 rue d\xe2\x80\x99Arras', 'Lyon, 2 all\xc3\xa9e des fleurs']

str:看起来像:

"圣"或" de"

处理后的预期列表我想在'之前检查,':

['Mont Saint Martin']

或str =" de"

['Mont de Marsan']

我试过:

new = filter(lambda x: x.my_list == str, x)[0]

谢谢你的帮助。

2 个答案:

答案 0 :(得分:4)

cities = [w.split(',')[0] for w in my_list]
term = "de"
results = [city for city in cities if term in city.lower()]

答案 1 :(得分:2)

使用re.match功能。

>>> l = ['Mont Saint Martin, 42 rue de Bordeaux', 'Mont de Marsan, 100 avenue Pierre de Coubertin', 'Lyon, 56 rue du Docteur Alb\xc3\xa9ric Pont', 'Lille, 90 rue d\xe2\x80\x99Arras', 'Lyon, 2 all\xc3\xa9e des fleurs']
>>> st = ["saint","de"]
>>> for i in st:
        for j in l:
            for x in j.split(','):
                if re.match(r'(?i)\S+ ' + i + r' \S+$', x):
                    print(x)


Mont Saint Martin
Mont de Marsan
>>>