We are given a list of pattern strings and a single input string. We need to find all possible close good enough matches of input string into list of pattern strings.
Input : patterns = ['ape', 'apple', 'peach', 'puppy'], input = 'appel' Output : ['apple', 'ape']
We can solve this problem in python quickly using in built function difflib.get_close_matches().
How does difflib.get_close_matches() function work in Python ?
difflib.get_close_matches(word, possibilities, n, cutoff) accepts four parameters in which n, cutoff are optional. word is a sequence for which close matches are desired, possibilities is a list of sequences against which to match word. Optional argument n (default 3) is the maximum number of close matches to return, n must be greater than 0. Optional argument cutoff (default 0.6) is a float in the range [0, 1]. Possibilities that don’t score at least that similar to word are ignored.
The best (no more than n) matches among the possibilities are returned in a list, sorted by similarity score, most similar first.
References : https://docs.python.org/2/library/difflib.html
- Python | Check if string matches regex list
- Python | Check if suffix matches with any string in given list
- Python | Find Mixed Combinations of string and list
- Python | Get a list as input from user
- Python | Convert List of String List to String List
- Python | Convert mixed data types tuple list to string list
- Python | Convert list of string to list of list
- Python | Convert list of numerical string to list of Integers
- Python | Convert string List to Nested Character List
- Python | Convert list of string into sorted list of integer
- Python Program to convert List of Integer to List of String
- Python | os.close() method
- Python program to input a comma separated string
- Python | Convert string enclosed list to list
- Python | Convert a string representation of list into list
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.