On 7/21/05, Steven D'Aprano <[EMAIL PROTECTED]> wrote: > On Wed, 20 Jul 2005 16:30:10 -0400, Bill Mill wrote: > > > On 7/20/05, Simon Brunning <[EMAIL PROTECTED]> wrote: > >> On 7/20/05, Mage <[EMAIL PROTECTED]> wrote: > >> > Or is there better way? > >> > > >> > for (i, url) in [(i,links[i]) for i in range(len(links))]: > >> > >> for i, url in enumerate(links): > >> > > > > +2 for creating seeing a need and crafting a reasonable solution, but > > -1 for not reading the section on builtins to see if it existed > > already. > > To see if *what* existed already? > > It is well and good to say RTFM, but there are 697 subsections to the > Python Library reference, and if you don't know what you are looking for, > and beginners rarely are, it isn't obvious which is the right section to > read. And the Library Reference isn't even "the" manual: there is also the > global module reference and language reference. > > If you already know what you are looking for, reading the manual is great > advice. Browsing the manual looking for interesting tidbits can even be > fun for a certain mindset. But if you don't know enough to know what to > look for, where in the 2000-odd sections of the Python references will > you find it? >
I said the *builtins* section. I think you learn pretty quick that figuring out what functions are builtins is pretty important in every language. There's a fair number of people out there giving the advice to read chapter 2 of the library reference cover-to-cover for a good starter on python. Furthermore, I wasn't being hard on the guy, he still added up to +1. Lighten up, I was joking. > > > > (As for its pythonicity, I would have recommended isolating it into a > > function and making it a generator: > > It is easy to take this to extremes. It isn't necessary to isolate > everything into its own object, or class, or module. Too much > encapsulation is just as bad as too little. > agreed; his listcomp just looks awkward inside the for loop statement; if it were my code, I would put it into a function. He asked if his code was pythonic, and I think the (non-extreme) pythonic thing to do would be to put his listcomp into a function. > > > def my_enumerate(enumerable): > > i = 0 > > for elt in enumerable: > > yield (i, elt) > > i += 1 > > > > for i, url in my_enumerate(links): > > > > but it's not too bad as it is. Also, my function is completely > > untested - it's close to right though.) > > What is the advantage of your function my_enumerate over the Python > built-in enumerate? > > absolutely none; I just was saying how I would encapsulate it into a function. Peace Bill Mill bill.mill at gmail.com -- http://mail.python.org/mailman/listinfo/python-list