У меня есть два списка (список имен и список путей), и я хочу использовать их для создания третьего списка, элементами которого являются пути, не содержащие имен из списка имен:
names = ['name_1', 'name_2', 'name_3', 'name_4', 'name_5']
paths = ['dataset/name_1/00000003.jpg',
'dataset/name_2/00000001.jpg',
'dataset/name_3/00000000.png',
'dataset/name_4/00000002.jpg',
'dataset/name_5/00000000.jpg',
'dataset/name_6/00000002.jpg']
результирующий список из двух приведенных выше списков должен быть
['dataset/name_6/00000002.jpg']
Я достиг этого путем:
check = []
for path in paths:
exist_boolean = any([path.__contains__(x) for x in names])
check.append(exist_boolean)
check_final = [not i for i in check]
list(compress(paths, check_final))
Это излишнее убийство, есть ли элегантный способ сделать, чем уродливая логика, которую я пришелс?