python - 使用子列表中可用的文本信息从 super 列表中提取元素

标签 python

当我想使用 my_list 中提供的文本信息从 super_list 中提取元素时,我的代码不起作用:

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

等待最好的方法。

最佳答案

您的列表理解语法略有偏差。应该是这样的:

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']
>>>

这里是 any 的引用和一个 list comprehensions .

关于python - 使用子列表中可用的文本信息从 super 列表中提取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446971/

相关文章:

python - 如何修复 Python 中的 "ImportError: No module named ..."错误?

python - TkInter ListBox 和 .format 的使用

Payload 函数的 Python 随机函数不起作用

python - 多次发送时sendto出现问题(Python)

python - 如何在脚本执行期间询问时从 python 脚本或 shell 脚本输入密码

python - 如何检查正在执行的 Python 脚本的哪一行?

python - 如何在matplotlib中获得平滑的填充轮廓?

python - matplotlib 连接散点图中的点

python - 如何将 dict 的值写入 openpyxl 中的空(新)列?

python - kivy: python for android + C++