FishHook
Чо???
help(hash)
hash(...)
hash(object) -> integer
Return a hash value for the object. Two objects with the same value have
the same hash value. The reverse is not necessarily true, but likely.
Если у двух объектов один хеш, из этого не следует, что у них одинаковое содержимое. Встроенный хеш слишком короткий для анализа большого числа разных строк.
FishHook
unic = {hash(l): l for l in file.split("\n")}
Хеши нужны, чтобы не хранить встретившиеся строки (для экономии памяти). Строка может занимать много байт, а хеш - всегда фиксированное небольшое количество.
FishHook
Хеш вычисляется только один раз, а извлекается по нему очень быстро и без затратно.
А зачем там словарь? Подойдёт просто set(fin). Просто строк могут быть миллионы и все разные, да и порядок сохранить не мешало бы. Потому set() не подходит.