使用每个项目中包含的特定值在项目列表中使用过滤

时间:2015-09-04 09:52:44

标签: python list filter

我有一个列表例如

list = ["1234doy001.tif", "1233doy001.tif", "1111doy002.tif", "2222doy002.tif"]

我想过滤列表,它只会给我带有doy001值的列表。

期望的结果:

filter = ["1234doy001.tif", "1233doy001.tif"]

我正在尝试

filter = [j for j in list if j == '*doy001*']

filter = [j for j in list if j == 'doy001']

但没有成功。它只返回一个空列表,如[]

请告知。

谢谢, -Leo

3 个答案:

答案 0 :(得分:0)

j == '*doy001*'检查j是否等于*doy001*

j == 'doy001'检查j是否等于doy001

这些方法都是错误的。

使用in运算符;

filter = [j for j in list if 'doy001' in j]

答案 1 :(得分:0)

使用字符串in,您可以检查字符串是否包含在另一个

filter = [j for j in list if 'doy001' in j]

答案 2 :(得分:0)

您可以使用:

filter =   [j for j in l if 'doy001' in j]

filter = [j for j in l if (j.find('doy001')!= -1)]

希望这有帮助。