I\'m reading in a long list of words, and I made a node for every word in the list. Each node has an attribute \'word\' for their position in the list.
I am trying to co
The problem is that you are only comparing words that appear right next to each other in the list, i.e. words i
and i+1
, e.g. I
and IN
appear next to each other, as do WIN
and WIND
, but IN
and WIND
are far apart. It seems you want to compare all possible words, which requires a more sophisticated algorithm. Here's an idea:
{"ACT": ["CAT", "ACT", "TAC], ...}
. A collections.defaultdict(list)
will be useful for this.list.sort(key=len)
assuming you have just a list of words.n-1
. Something like for i in range(len(word)): process(word[:i] + word[i+1:])
. You may want to be careful about duplicates here.