I don't know list, I not good at list.
Ellerbee, Edward
EEllerbee at BBandT.com
Thu Jul 14 09:05:05 EDT 2011
Thank you all for the advice, let me spin this in a different way.
I've built a program that goes to the NANPA website, scrapes area
code/exchange (npa/nxx) digits for a specified area - be it carolina,
alabama, texas, etc - drops it into a file, then massages the data and
prints out the correct format to insert into a voice router. The code is
ugly, but it works great.
The thing I haven't been able to get my script to do is to reduce the
amount of dial-peers. Hence the need to reduce the numbers to the least
common denominator, and put it in the xxxxx[xx] format.If we had a set
number of digits, we could build a dictionary(unless it's possible to do
that dynamically).
So, a couple assertions:
1. the data will always be 6 digit numbers (in a string format)
2. the data is in a txt file after being put there from my script
3. the data will never be the same (I'm going to use this for site
conversions/new site builds
e.g. today I might be dealing with 252-, 919- and 704- area
codes, tomorrow might be 304- and 754-
4. I wanted a script to reduce the time taking to build the dial-peers
manually. I'd previously spent 3-4 hours
on gathering and processing data. The script I have so far pulls data
and massages in about 6 seconds
5. I'm using python 2.7 - it seems like it had more module availability
than 3
And a couple question:
1. Would lists be the best way to handle this data? Would it be better
to process this data from a file?
2. Is there a way to determine the common (first-5 digits) denominator
among a list (or file) of data?
3. and... Could those common numbers be inserted in a dict for
processing?
Sorry for the book!
thanks
Edward Ellerbee
-----Original Message-----
From: python-list-bounces+eellerbee=bbandt.com at python.org
[mailto:python-list-bounces+eellerbee=bbandt.com at python.org] On Behalf
Of MRAB
Sent: Wednesday, July 13, 2011 5:59 PM
To: python-list at python.org
Subject: Re: I don't know list, I not good at list.
> I've been beating my head against the desk trying to figure out a >
method to accomplish this:
>
> Take a list (this example is 5 items, It could be 150 or more - i.e.
> it's variable length depending on the city/local calling zones) > >
The first 6 digits of phone numbers(NPA/NXX) in a local calling area.
> I want to concatenate the last digit for insertion into a call >
routing pattern.
>
> I tried this and failed miserably:
>
> list1=['252205','252246','252206','252247','252248']
> for item in list1:
> try:
> item1=list1[0]
> item2=list1[1]
> if item1[0:5] == item2[0:5]:
> print item1[0:5] + '[' + item1[5:6] +
item2[5:6] + ']'
> list1.pop(0)
> else:
> print item1
> list1.pop(0)
> except:
> try:
> print item1
> list1.pop(0)
> except:
> pass
>
> #-----------------------------------------------------------------
> My intent is to have the end data come out (from the example list >
above) in the format of > 25220[56] > 25224[678] > > I tried putting
together a variable inserted into a regular > expression, and it
doesn't seem to like:
> Item1=list1[0]
> Itemreg = re.compile(Item1[0:5])
> For stuff in itemreg.list1:
> #do something
>
> Can somebody throw me a bone, code example or module to read on >
python.org? I'm a n00b, so I'm still trying to understand functions >
and classes.
>
> I thought the experts on this list might take pity on my pathetic >
code skillz!
>
defaultdict comes in handy:
>>> list1 = ['252205','252246','252206','252247','252248']
>>> from collections import defaultdict >>> d = defaultdict(set) >>>
for item in list1:
d[item[ : 5]].add(item[5 : ])
>>> d
defaultdict(<class 'set'>, {'25224': {'8', '7', '6'}, '25220': {'5',
'6'}}) >>> for k, v in d.items():
print(k + "[" + "".join(v) + "]")
25224[876]
25220[56]
--
http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list