How to parse this line of code manually
Davy
zhushenli at gmail.com
Mon Aug 27 23:23:05 EDT 2007
On Aug 28, 11:00 am, Davy <zhushe... at gmail.com> wrote:
> Hi all,
>
> It is well known that Python is appreciated for its merit of concise.
> However, I found the over concise code is too hard to understand for
> me.
>
> Consider, for instance,
> def known_edits2(word):
> return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in
> NWORDS)
>
> Shall I understand the code in set() as
> for e2 in edits1(e1) {
> if e2 in NWORDS {
> for e1 in edits1(word) {
> e2
> }
> }
>
> }
>
[SNIP]
Hi all, I figured it myself. It is left to righ parse, right?
So the above one is like
for e1 in edits1(word) {
for e2 in edits1(e1) {
if e2 in NWORDS {
push e2 to set
}
}
}
> And a general question is: Is there any tip available to understand
> the code in one line, or what's the parsing priority (left to right,
> right to left, or other possibilities)
>
> Any suggestions are welcome!
>
> The code is a simple spell checker fromhttp://www.norvig.com/spell-correct.html
>
> Best regards,
> Davy
More information about the Python-list
mailing list