Вы можете просто попробовать это простое понимание списка:)
>>> afiles = [['file1', '.exe'], ['file2', '.txt']]
>>> bfiles = ['file1', 'file2', 'file3', 'file4']
>>> [x for x in bfiles if x not in (y[0] for y in afiles)]
['file3', 'file4']
или лучше, вы можете просто назначить afiles
файлы без расширений, например,
>>> afiles_names = [x[0] for x in afiles]
>>> [x for x in bfiles if x not in afiles_names] # so you won't have to compute that each time
['file3', 'file4']