[Tutor] using re to build dictionary
Kent Johnson
kent37 at tds.net
Tue Feb 24 13:41:11 CET 2009
On Tue, Feb 24, 2009 at 6:48 AM, Norman Khine <norman at khine.net> wrote:
> Hello,
> From my previous post on create dictionary from csv, i have broken the
> problem further and wanted the lists feedback if it could be done better:
>
>>>> s = 'Association of British Travel Agents (ABTA) No. 56542\nAir Travel
>>>> Organisation Licence (ATOL)\nAppointed Agents of IATA (IATA)\nIncentive
>>>> Travel & Meet. Association (ITMA)'
>>>> licences = re.split("\n+", s)
>>>> licence_list = [re.split("\((\w+)\)", licence) for licence in licences]
This is awkward. You can match directly on what you want:
In [7]: import re
In [8]: s = 'Association of British Travel Agents (ABTA) No.
56542\nAir Travel Organisation Licence (ATOL)\nAppointed Agents of
IATA (IATA)\nIncentive Travel & Meet. Association (ITMA)'
In [9]: licenses = re.split("\n+", s)
In [10]: licenseRe = re.compile(r'\(([A-Z]+)\)( No. (\d+))?')
In [11]: for license in licenses:
....: m = licenseRe.search(license)
....: print m.group(1, 3)
('ABTA', '56542')
('ATOL', None)
('IATA', None)
('ITMA', None)
Kent
More information about the Tutor
mailing list