Да, set
- правильный инструмент для этой работы.Вы можете узнать, есть ли слово в наборе с помощью in
, который работает за время O (1).Добавление слов выполняется с помощью члена add
, который занимает амортизированное O (1) время.Он также имеет все обычные операции с конечным множеством: объединение, пересечение, разность и т. Д.:
>>> A = set(["foo", "bar", "baz"])
>>> B = set(["foo", "ham", "spam"])
>>> "foo" in A
True
>>> "bar" in B
False
>>> A | B
set(['bar', 'ham', 'spam', 'foo', 'baz'])
>>> A & B
set(['foo'])
>>> A - B
set(['bar', 'baz'])
>>> B - A
set(['ham', 'spam'])