Parsing numeric ranges
Corey Richardson
kb1pkl at aim.com
Fri Feb 25 04:36:32 EST 2011
On 02/25/2011 04:27 AM, Seldon wrote:
> Hi all,
> I have to convert integer ranges expressed in a popular "compact"
> notation (e.g. 2, 5-7, 20-22, 41) to a the actual set of numbers (i.e.
> 2,5,7,20,21,22,41).
>
> Is there any library for doing such kind of things or I have to write it
> from scratch ?
>
> Thanks in advance for any answers.
>
> Seldon
>
I don't know of any library, but range() in Python 2 or list(range()) in
python 3 should provide the brunt force of what you're trying to do.
for example,
final_nums = [2]
compact_range = "5-7".split('-')
final_nums += range(int(compact_range[0]), int(compact_range[1]) + 1)
And then looping through your compact notation deciding when it's a
range notation and when it's a literal is all you have to do.
--
Corey Richardson
More information about the Python-list
mailing list