Проверьте, находится ли элемент списка в [x] [0] другого списка с пониманием - PullRequest
0 голосов
/ 17 февраля 2019

этот сводит меня с ума.Первый список содержит имена файлов без расширения.Например:

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

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Это должно делать то, что вы хотите

files = [file for file, _ in bfiles if file in afilenames]
0 голосов
/ 17 февраля 2019
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]

Это также сработало.

...