[Tutor] search list with regex

Elwin Estle chrysalis_reborn at yahoo.com
Mon Jan 31 17:08:24 CET 2011


--- On Mon, 1/31/11, Wayne Werner <waynejwerner at gmail.com> wrote:

From: Wayne Werner <waynejwerner at gmail.com>
Subject: Re: [Tutor] search list with regex
To: "Elwin Estle" <chrysalis_reborn at yahoo.com>
Cc: tutor at python.org
Date: Monday, January 31, 2011, 10:20 AM

On Mon, Jan 31, 2011 at 7:07 AM, Elwin Estle <chrysalis_reborn at yahoo.com> wrote:


Tcl's list search command has the option to search for a list element that matches a given regex.  Is there something similar in python?  If not, it seems like it should be fairly trivial for me to write my own (just wondering if I would be re-inventing the wheel).


matching_items = []for item in yourlist:    result = re.search('[sS]ome expression', item) # and of course s/search/match, if you're interested in matching
    if result:
        matching_items.append(item) 
Or you could go for more terse syntax via list comp:
matching_items = [item for item in yourlist if re.search('contains', item)]


Or if you want one at a time you could change [] for () and turn it into a generator expression.
However, the list itself doesn't have any method for matching. Here are its "public" methods:


appendcountextendindexinsertpopremovereversesort
HTH,Wayne
...here I am...dutifully bottom posting...

That's kinda what I figured, and the code you posted is pretty much what I had in mind.  The list I plan to use it with is pretty short, but varies in length (am parsing a file full of Vcards).

One thing I notice, is that working with lists in Python is WAY faster than doing it in Tcl.  I have occasion to parse various text files and my standard method is to slurp the whole thing up into a string variable, then break it up into a list that I can then work on with various string or regex commands..   In Tcl, I've had it take minutes to do this process, but it takes just seconds in Python.






      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110131/34cf5b42/attachment.html>


More information about the Tutor mailing list