Prefix matching in Python using pytrie module

Given a list of strings and a prefix value sub-string, find all strings from given list of strings which contains given value as prefix ?


Input : arr = ['geeksforgeeks', 'forgeeks', 
               'geeks', 'eeksfor'], 
       prefix = 'geek'
Output : ['geeksforgeeks','geeks']

A Simple approach to solve this problem is to traverse through complete list and match given prefix with each string one by one, print all strings which contains given value as prefix.

We have existing solution to solve this problem using Trie Data Structure. We can implement Trie in python using pytrie.StringTrie() module.

Create, insert, search and delete in pytrie.StringTrie() ?

Note : To install pytrie package use this pip install pytrie –user command from terminal in linux.





# Function which returns all strings 
# that contains given prefix 
from pytrie import StringTrie 
def prefixSearch(arr,prefix): 
    # create empty trie 
    # traverse through list of strings 
    # to insert it in trie. Here value of 
    # key is itself key because at last 
    # we need to return 
    for key in arr: 
        trie[key] = key 
    # values(search) method returns list 
    # of values of keys which contains 
    # search pattern as prefix 
    return trie.values(prefix) 
# Driver program 
if __name__ == "__main__"
    arr = ['geeksforgeeks','forgeeks','geeks','eeksfor'
    prefix = 'geek'
    output = prefixSearch(arr,prefix) 
    if len(output) > 0
        print (output) 
        print ('Pattern not found')



This article is contributed by Shashank Mishra (Gullu). If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

Article Tags :
Practice Tags :