У меня есть набор из ~ 10 миллионов предметов, которые выглядят примерно так:Как найти элемент с определенной начальной строкой в наборе
1234word:something
4321soup:ohnoes
9cake123:itsokay
[...]
Теперь мне нужно быстро проверить, если элемент с А конкретный старт находится в наборе. Например
x = "4321soup"
is x+* in a_set:
print ("somthing that looks like " +x +"* is in the set!")
Как это сделать? Я рассматривал использование регулярного выражения, но я не знаю, возможно ли это в этом сценарии.
вы хотите напечатать строки, которая начинается с '4321soup'? –
Head's up: если у вас действительно есть что-то вроде 10M записей в вашем наборе, вам может быть лучше с [trie] (http://en.wikipedia.org/wiki/Trie) – inspectorG4dget
Я согласен с @ inspectorG4dget, python set не является хорошей структурой для такой задачи. Лучше использовать дерево или отсортированную последовательность, чтобы получить результат в 'O (log (n))' вместо O (n) time –