MyHomeLib2026 Да нет тут никакого бинома Ньютона...
Можно удалять записи-строки из отдельных файлов inp.
Главное при этом, чтобы каждая строка в inp точно имела соответствующий файл в zip-архиве.
Создайте три папки, например L1, L2 и L3.
В первуюую из них поместите inpx и один любой файл zip с книгами. Поле для экспериментов готово.
В папке L1 в файле inpx оставьте только строчку с именем файла inp, соответствующего выбранному ранее zip-файлу. Все, можно построить маленькую коллекцию L1 из кастрированного inpx и одного zip-файла.
Скопируйте файлы inpx и zip из L1 в L2. Отредактируйте файл inp из inpx. Оставьте, скажем, пару строчек в нем. Inp отредактированный закиньте в inpx, предварительно удалив из него старый inp. Постройте коллекцию L2. В ней вы увидите книжек ровно столько, сколько оставили строчек в inp.
Скопируйте файлы inpx и zip из L2 в L3. Теперь можете удалить, скажем, половину книжек из zip-файла. Главное не затронуть при удалении те книги, описание которых есть в вашем урезанном inpx. И коллекция опять великолепно построится.
Другое дело, что непонятно, что вы с этим делать будете. Парсить поле наименования в каждом inp на предмет импортных букв и получать айди книг, которые будете удалять из zip-файлов? Или каким-нибудь эксплорером лезть в sqlite таблички и получать номера айди «плохих книжек», чтобы потом санировать zip-файлы?