Re: Parsing HTML

2007-02-23 Thread sofeng
On Feb 8, 11:43 am, "metaperl" <[EMAIL PROTECTED]> wrote:
> On Feb 8, 2:38 pm, "mtuller" <[EMAIL PROTECTED]> wrote:
>
> > I am trying to parse a webpage and extract information.
>
> BeautifulSoup is a great Python module for this purpose:
>
>http://www.crummy.com/software/BeautifulSoup/
>
> Here's an article on screen scraping using it:
>
>http://iwiwdsmi.blogspot.com/2007/01/how-to-use-python-and-beautiful-...

This article has moved to 
http://iwiwdsmp.blogspot.com/2007/02/how-to-use-python-and-beautiful-soup-to.html

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


Rewriting Recipe/410687 without map and lambda

2007-12-11 Thread sofeng
I would like to use the following recipe to transpose a list of lists
with different lengths. 
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410687

Here is an example of what I would like to do:

Python 2.5.1 (r251:54863, May 18 2007, 16:56:43)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [[1,2,3],[4,5,6,7],[8,9]]
>>> print map(lambda *row: list(row), *a)
[[1, 4, 8], [2, 5, 9], [3, 6, None], [None, 7, None]]
>>>

However, in the Python 3000 FAQ (http://www.artima.com/weblogs/
viewpost.jsp?thread=211200), Guido says not to use map with lambda
because a list comprehension is clearer and faster.

How can I rewrite the above recipe using a list comprehension instead?

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


Re: Rewriting Recipe/410687 without map and lambda

2007-12-12 Thread sofeng
On Dec 11, 8:29 pm, "Terry Reedy" <[EMAIL PROTECTED]> wrote:
> "sofeng" <[EMAIL PROTECTED]> wrote in message
>
> news:[EMAIL PROTECTED]
> |I would like to use the following recipe to transpose a list of lists
> | with different 
> lengths.http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410687
> |
> | Here is an example of what I would like to do:
> |
> | Python 2.5.1 (r251:54863, May 18 2007, 16:56:43)
> | [GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
> | Type "help", "copyright", "credits" or "license" for more information.
> | >>> a = [[1,2,3],[4,5,6,7],[8,9]]
> | >>> print map(lambda *row: list(row), *a)
> | [[1, 4, 8], [2, 5, 9], [3, 6, None], [None, 7, None]]
> | >>>
> |
> | However, in the Python 3000 FAQ (http://www.artima.com/weblogs/
> | viewpost.jsp?thread=211200), Guido says not to use map with lambda
> | because a list comprehension is clearer and faster.
> |
> | How can I rewrite the above recipe using a list comprehension instead?
>
> Here is the sort of thing Guido is talking about:
>
> >>> a = [[1,2,3],[4,5,6,7],[8,9]]
> >>> [list(r) for r in zip(*a)]
>
> [[1, 4, 8], [2, 5, 9]]
>
> Except in this case, zip does not pad, while map does, so the list comp
> form has to be
>
> >>> [list(r) for r in map(None, *a)]
>
> [[1, 4, 8], [2, 5, 9], [3, 6, None], [None, 7, None]]
>
> but at this point, it is about as easy to put the lambda in place of None.
>
> But when one maps one sequence or equal-length sequences, Guido's point
> applies.
>
> tjr

Thank you very much.
-- 
http://mail.python.org/mailman/listinfo/python-list