В вашем примере фрагмента что-то не так:
- В этом случае целесообразнее использовать
dict
или set
, чем list
- Вы не разделяете слова в каждой строке (если в строке более одного слова)
- Ваше
else
условие не требуется
Вот простая реализация, которая устраняет эти проблемы и использует несколько опций языка:
with open("test.txt", "r") as file:
lines = file.read().splitlines()
uniques = set()
for line in lines:
uniques |= set(line.split())
print(f"Unique words: {len(uniques)}")
В этом примере используются наборы и f-строки, последняя из которых доступна только в Python 3.6+. Обратите внимание, однако, что мы «крадем» все содержимое файла в переменную, что может быть плохо, если файл очень большой. Я предполагаю, что ваш пример файла небольшой.
Кроме того, этот пример не обрабатывает такие случаи, как пунктуация и тому подобное. Таким образом, слово «тест» будет считаться словом, отличным от слова «тест». (с точкой). Исправление оставлено читателю в качестве упражнения.