Вы добавляете к _line
независимо от того, был ли сделан удар или нет. Добавлять к _list
можно только в том случае, если вы получили удар:
found = re.findall(r'[^/]*\.js',line)
if found:
_list.append(found)
Кроме того, вторая часть об уникальности, вероятно, может быть реализована в виде набора:
unique = set(_list)
.. вашей текущей реализации выполняет поиск по всему списку (или, по крайней мере, до тех пор, пока не будет выполнено обращение) для каждой вставки, что крайне неэффективно, так как число записей начинает расти.
Вы также можете реализовать его, используя только имя файла как ключ в словаре, затем вызывая name_of_dict.keys()
, чтобы получить только ключи (которые будут уникальными). DICT - это таблица ha sh, означающая, что для большинства случаев вставки являются O (1) - то есть постоянными, а не в зависимости от размера словаря (который in
будет делать для списка).