Code Explaination: Spelling correction code
Drew
olsonas at gmail.com
Thu Apr 12 08:41:20 EDT 2007
On Apr 11, 11:27 pm, Steven Bethard <steven.beth... at gmail.com> wrote:
> Drew wrote:
> > I recently saw this website:http://www.norvig.com/spell-correct.html
>
> > All the code makes sense to me save one line:
>
> > def known_edits2(word):
> > return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in
> > NWORDS)
>
> This is the same as:
>
> result = set()
> for e1 in edits1(word):
> for e2 in edits1(e1):
> if e2 in NWORDS:
> result.add(e2)
> return result
>
> The thing between the ``set(`` and ``)`` is called a generator
> comprehension if you'd like to look into it further.
>
> STeVe
Steve -
Thanks for the response. I'm somewhat familiar with generator/list
comprehension but was unsure how multiple statements were evaluated
when chained together. From your explanation, I'm assuming they are
evaluated from the "inside out" rather than left to right or right to
left.
Does the mean that the comprehension on the inside is always evaluated
first?
Thanks,
Drew
More information about the Python-list
mailing list