Развернувшись на ответ Понэта и другие ответы здесь, вы можете получить еще лучшие результаты, используя понимание генератора вместо понимания списка и используя структуру данных set
(так как оператор in
равен O (n ) в списке, но O (1) на множестве).
Итак, вот функция, которая будет работать для вас:
def filter_list(full_list, excludes):
s = set(excludes)
return (x for x in full_list if x not in s)
Результат будет итерируемым, который будет лениво выберите фильтр. Если вам нужен реальный объект списка (например, если вам нужно сделать len()
в результате), вы можете легко создать такой список:
filtered_list = list(filter_list(full_list, excludes))
Добавьте следующее как дополнительную опцию компоновщика:
/ignore:4099
Это находится в Свойствах-> Компоновщик-> Командная строка
Файл PDB обычно используется для хранения отладочной информации. Это предупреждение вызывается, вероятно, потому что файл vc80.pdb
не найден при соединении файла целевого объекта. Считайте запись MSDN на LNK4099 здесь .
, С другой стороны, можно выключить поколение отладочной информации от поля Project Properties> Linker> Debugging> Generate Debug Info.
РЕДАКТИРОВАНИЕ: не используйте vc80 / Visual Studio 2005, но Visual Studio 2008 / vc90 версии библиотеки CGAL (возможно от здесь ).
Инструменты Компоновщика, Предупреждающие LNK4099:
Вы могли также скомпилировать с/Z7, таким образом, pdb не должен использоваться, или удалите опцию компоновщика ОТЛАДКИ/, если у Вас нет .pdb файлов для объектов, Вы связываетесь.
I suspect /ignore is a VC6 link.exe option. for VS2005 and VS2008's linker there's no documented /ignore option available, but the linker looks just ignore the "/ignore:XXX" option, no error and no effect.
Обновление 2018-10-16
Как сообщается, с VS 2013 это предупреждение можно отключить. См. Комментарий @Mark Ransom.
Исходный ответ
Вы не можете отключить это конкретное предупреждение.
Согласно Джеффу Чаппеллу , предупреждение 4099 рассматривается как слишком важное, чтобы его игнорировать , даже при использовании вместе с / wx (который будет рассматривать предупреждения как ошибки и игнорировать указанное предупреждение в других ситуациях)
Вот соответствующий текст из ссылки:
Not Quite Unignorable Warnings
Для некоторых предупреждений числа, спецификация в опции / ignore - принято, но не обязательно действовать. Если появится предупреждение пока параметр / wx не активен, предупреждающее сообщение все еще отображается отображается, но если параметр / wx активен, то предупреждение игнорируется. Как будто предупреждение считается достаточно важным, чтобы отменить попытку игнорировать его, но не в том случае, если пользователь тоже высокая цена на не проигнорированные предупреждения.
Затронуты следующие номера предупреждений:
4200, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4219, 4231 и 4237