What for -- for? (was A bug?)

Rustom Mody rustompmody at gmail.com
Thu Oct 30 13:41:37 EDT 2014


On Thursday, October 30, 2014 10:53:13 PM UTC+5:30, Joshua Landau wrote:
> On 29 October 2014 03:22, Rustom Mody  wrote:
> > Yesterday I was trying to introduce python to some senior computer scientists.
> >
> > Tried showing a comprehension-based dir-walker vs a for-loop based one:
> >
> > def dw(p):
> >    if isfile(p):
> >       return [p]
> >    else:
> >       return [p] + [c for f in listdir(p) for c in dw(p+'/'+f)]
> >
> ...
> >
> > Comment to me : "Well this is neat and compact, but it does not add
> > anything fundamental (over usual index based for-loops)"
> >
> > I tried to say that 'for' over general sequences is quite different
> > and significantly more powerful than C/Pascal for over indexes +
> > explicit indexing.
> 
> If you really want to show the generality of iteration, I suggest you
> start with iterators:
> 
>     def walk(path):
>         yield path
> 
>         if isdir(path):
>             for name in iterdir(path):
>                 for file in walk(path + "/" + name):
>                     yield file

heh!
That was my next version -- almost word-for-word
[Not on that laptop now; will check later]



More information about the Python-list mailing list