Python is readable

Kiuhnm kiuhnm03.4t.yahoo.it
Thu Mar 15 07:27:28 EDT 2012


On 3/15/2012 11:50, Chris Angelico wrote:
> On Thu, Mar 15, 2012 at 9:44 PM, Kiuhnm
> <kiuhnm03.4t.yahoo.it at mail.python.org>  wrote:
>> Let's try that.
>> Show me an example of "list comprehensions" and "with" (whatever they are).
>
> I'll do a list comp, because they lend themselves well to one-liners.
> what_am_i = '\n'.join(["%X\t%c"%(i,i) for i in range(128)])

A few conjectures:
1) '\n' is an object and join one of its methods;
2) [...] is a list comprehension;
3) that 'for' suggests that range isn't (or doesn't return) a list but 
an iterator;
4) points 2 and 3 suggest that [...] builds a list (or array?) by 
querying an iterator.
5) "%X\t%"(i,i) is probably equivalent to the C-like Perl's
   sprintf("%X\t%c", i, i)

So what_am_i is a simple ASCII table.

> Okay, that one also uses printf formatting, which may be a smidge
> obscure. Here's a simpler example:
>
> what_am_i = [x*x for x in range(11)]

what_am_i = 0, 1, 4, 9, ..., 100

Your first example suggests that range(n) is a sequence iterator which 
returns, if queried n times,
   0,...,n-1
(which is a bit counterintuitive, IMHO).

Kiuhnm



More information about the Python-list mailing list