这个让我发疯。第一个列表包含没有扩展名的文件名。例如:
afilenames = [file1, file2, file3]
第二个列表包含带有扩展名的文件名:
bfiles = [[file1, .exe], [file2, .txt], [file4, ini]]
我知道要获取一个列表,该列表返回来自bfiles中包含的文件。
预期结果:
[file1, file2]
这是我的尝试,但它只是返回胡说八道:
[afile for afile in afilenames for bfile in bfiles if afile in bfile[0]]
这应该做你想做的
files = [file for file, _ in bfiles if file in afilenames]
x = [a for a in afilenames for b in bfiles if a == b[0]]
您的版本也适用于您提供的示例。
x = [afile for afile in afilenames for bfile in bfiles if afile in bfile]
这也有效。