What is a list compression in Python?

2010-01-18 Thread Kit
Hello Everyone, I am not sure if I have posted this question in a
correct board. Can anyone please teach me:

What is a list compression in Python?

Would you mind give me some list compression examples?


Thanks & really appreciate that.
Kit
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What is a list compression in Python?

2010-01-18 Thread Kit
Thank you so much guys.

Just out of curiosity: can I do something like this to "square all
even numbers in the range 1-10"?
print [x^2 for x in range (1,11) if x % 2 == 0]

Or is there a better way of doing it? Thanks for the help, and I am
really appreciate your help.

Kit.

On 1月19日, 上午12時30分, Steven D'Aprano  wrote:
> On Mon, 18 Jan 2010 08:07:41 -0800, Kit wrote:
> > Hello Everyone, I am not sure if I have posted this question in a
> > correct board. Can anyone please teach me:
>
> > What is a list compression in Python?
>
> Google "python list comprehension".
>
> If Google is broken for you, try Yahoo, or any other search engine.
>
> > Would you mind give me some list compression examples?
>
> Instead of this:
>
> L = []
> for x in range(10):
>     L.append(x**2)
>
> you can write:
>
> L = [x**2 for x in range(10)]
>
> Instead of this example:
>
> L = []
> for x in range(10):
>     if x % 2 == 0:
>         L.append(x**2)
>
> you can write:
>
> L = [x**2 for x in range(10) if x % 2 == 0]
>
> --
> Steven

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What is a list compression in Python?

2010-01-18 Thread Kit
Oops...

> print [x^2 for x in range (1,11) if x % 2 == 0]
print [x^2 for x in range (1,10) if x % 2 == 0]


On 1月19日, 上午8時24分, Kit  wrote:
> Thank you so much guys.
>
> Just out of curiosity: can I do something like this to "square all
> even numbers in the range 1-10"?
> print [x^2 for x in range (1,11) if x % 2 == 0]
>
> Or is there a better way of doing it? Thanks for the help, and I am
> really appreciate your help.
>
> Kit.
>
> On 1月19日, 上午12時30分, Steven D'Aprano 
>
>
> cybersource.com.au> wrote:
> > On Mon, 18 Jan 2010 08:07:41 -0800, Kit wrote:
> > > Hello Everyone, I am not sure if I have posted this question in a
> > > correct board. Can anyone please teach me:
>
> > > What is a list compression in Python?
>
> > Google "python list comprehension".
>
> > If Google is broken for you, try Yahoo, or any other search engine.
>
> > > Would you mind give me some list compression examples?
>
> > Instead of this:
>
> > L = []
> > for x in range(10):
> >     L.append(x**2)
>
> > you can write:
>
> > L = [x**2 for x in range(10)]
>
> > Instead of this example:
>
> > L = []
> > for x in range(10):
> >     if x % 2 == 0:
> >         L.append(x**2)
>
> > you can write:
>
> > L = [x**2 for x in range(10) if x % 2 == 0]
>
> > --
> > Steven

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: What is a list compression in Python?

2010-01-18 Thread Kit
Cool! Thank you very much. You mean this instead right?

print [x*x for x in xrange(1,11,2)]

Kit


On 1月19日, 上午8時36分, Gary Herron  wrote:
> Kit wrote:
> > Thank you so much guys.
>
> > Just out of curiosity: can I do something like this to "square all
> > even numbers in the range 1-10"?
> > print [x^2 for x in range (1,11) if x % 2 == 0]
>
> > Or is there a better way of doing it? Thanks for the help, and I am
> > really appreciate your help.
>
> That's a fine way to do it, although:
>
>   xrange is slightly more efficient than range for large
>   sets of values.  (This isn't such a large set for it to matter.)
>
>   You can get range and xrange to count by two's, eliminating
>   the need for the "if" portion in this case.
>
>   The exponent operator is ** not ^, and  x*x is more efficient than x**2.
>
> So.
>
> print [x**2 for x in xrange(1,11,2)]
>
> Gary Herron
>
>
>
> > Kit.
>
> > On 1月19日, 上午12時30分, Steven D'Aprano  > cybersource.com.au> wrote:
>
> >> On Mon, 18 Jan 2010 08:07:41 -0800, Kit wrote:
>
> >>> Hello Everyone, I am not sure if I have posted this question in a
> >>> correct board. Can anyone please teach me:
>
> >>> What is a list compression in Python?
>
> >> Google "python list comprehension".
>
> >> If Google is broken for you, try Yahoo, or any other search engine.
>
> >>> Would you mind give me some list compression examples?
>
> >> Instead of this:
>
> >> L = []
> >> for x in range(10):
> >>     L.append(x**2)
>
> >> you can write:
>
> >> L = [x**2 for x in range(10)]
>
> >> Instead of this example:
>
> >> L = []
> >> for x in range(10):
> >>     if x % 2 == 0:
> >>         L.append(x**2)
>
> >> you can write:
>
> >> L = [x**2 for x in range(10) if x % 2 == 0]
>
> >> --
> >> Steven

-- 
http://mail.python.org/mailman/listinfo/python-list