检查列表项是否在理解的其他列表的[x] [0]中

问题描述 投票:0回答:2

这个让我发疯。第一个列表包含没有扩展名的文件名。例如。:

afilenames = [file1, file2, file3]

第二个列表包含带扩展名的文件名:

bfiles = [[file1, .exe], [file2, .txt], [file4, ini]]

我知道想得到一个列表,它返回来自afilenames的文件,其中包含bfiles。

预期结果:

[file1, file2]

这是我的尝试,但它只是回归废话:

[afile for afile in afilenames for bfile in bfiles if afile in bfile[0]]
python list compare exists dimensional
2个回答
0
投票

这应该做你想要的

files = [file for file, _ in bfiles if file in afilenames]

0
投票
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]

这也有效。

© www.soinside.com 2019 - 2024. All rights reserved.