匹配列表python中的多个str

时间:2016-12-13 06:42:21

标签: python string match

所有

a = ['T01--X','T02--X','T03--X','T04--XX','T01--X','T01--Y','T05--X','T02-YY','T01-T02','T02-T03']

如何在此列表中匹配str包括T01或T02或T03?

提前致谢

3 个答案:

答案 0 :(得分:0)

a = ['T01--X','T02--X','T03--X','T04--XX','T01--X','T01--Y','T05--X','T02-YY','T01-T02','T02-T03']

for i in a:
    if 'T01' in i or 'T02' in i or 'T03' in i :
        print(i)

出:

T01--X
T02--X
T03--X
T01--X
T01--Y
T02-YY
T01-T02
T02-T03

答案 1 :(得分:0)

你的意思是条件列表理解吗?

在这种情况下,你可以使用:

>>> [item for item in a if any(substr in item for substr in ['T01', 'T02', 'T03'])]
['T01--X', 'T02--X', 'T03--X', 'T01--X', 'T01--Y', 'T02-YY', 'T01-T02', 'T02-T03']

答案 2 :(得分:0)

方法1

使用简单的forif循环。

a = ['T01--X','T02--X','T03--X','T04--XX','T01--X','T01--Y','T05--X','T02-YY','T01-T02','T02-T03']

result = []
for element in a:
     if 'T01' in element or 'T02' in element or 'T03' in element :
             result.append(element)
print result

方法2

使用列表理解。一个更加pythonic的方式!

a = ['T01--X','T02--X','T03--X','T04--XX','T01--X','T01--Y','T05--X','T02-YY','T01-T02','T02-T03']
print [elt for elt in a if 'T01' in elt or 'T02' in elt or 'T03' in elt]

希望这有帮助!