0

this one is driving me crazy. The first list contains filenames without extension. e.g.:

afilenames = [file1, file2, file3]

The second list contains filenames with extensions:

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

I know would like to get a list, which returns the files from afilenames, which contains in bfiles.

Expected result:

[file1, file2]

This is my attempt, but it just return bullshit:

[afile for afile in afilenames for bfile in bfiles if afile in bfile[0]]
ErAzOr
  • 57
  • 1
  • 6

2 Answers2

0
x = [a for a in afilenames for b in bfiles if a == b[0]]

your version also worked for me with the example you provided.

x = [afile for afile in afilenames for bfile in bfiles if afile in bfile]

This also worked.

ilamaaa
  • 421
  • 2
  • 8
0

This should do what you want

files = [file for file, _ in bfiles if file in afilenames]
Hatatister
  • 962
  • 6
  • 11