使用sub-lis中可用的文本信息从超级列表中提取元素

2024-10-01 07:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

当我想使用我的\列表中可用的文本信息从超级\列表中提取元素时,我的代码不起作用:

import glob    
super_list = glob.glob('*.jpg')

print (super_list)

E:\\a2001.jpg
E:\\a2008.jpg
E:\\a2007.jpg
E:\\a2002.jpg
E:\\a2009.jpg
E:\\a2009.jpg

my_list = ['2001','2002','2009']

这就是编码中的问题

result_list = [x for x in super_list if (y for y in my_list) in x]
print (result_list)

结果列表应为:

E:\\a2001.jpg
E:\\a2002.jpg
E:\\a2009.jpg
E:\\a2009.jpg

等待最好的方法。你知道吗


Tags: in文本信息列表formyresultglob
2条回答
result_list = [x for x in super_list 
               if any(y in x for y in my_list) ]

你的语法列表有点不对劲。应该是这样的:

result_list = [x for x in super_list if any(y in x for y in my_list)]

下面是一个演示:

>>> super_list = [
...     'E:\\a2001.jpg',
...     'E:\\a2008.jpg',
...     'E:\\a2007.jpg',
...     'E:\\a2002.jpg',
...     'E:\\a2009.jpg',
...     'E:\\a2009.jpg'
... ]
>>> my_list = ['2001','2002','2009']
>>> result_list = [x for x in super_list if any(y in x for y in my_list)]
>>> result_list
['E:\\a2001.jpg', 'E:\\a2002.jpg', 'E:\\a2009.jpg', 'E:\\a2009.jpg']
>>>

这里有一个关于^{}的引用和一个关于list comprehensions的引用。你知道吗

相关问题 更多 >