easy but difficult

Amit Khemka khemkaamit at gmail.com
Tue Oct 16 12:46:58 CEST 2007


On 10/16/07, Beema shafreen <beema.shafreen at gmail.com> wrote:
> hi everybody,
>   I have  a file  separated by hash:
> as shown below,
> file:
> A#1
> B#2
> A#2
> A#3
> B#3
>
> I need the result like this:
> A 1#2#3
> B 2#3
>
> how will generate the result like this from the above file
> can somebody tell me what i have to do......
> My code:
>           fh =open('abc_file','r')
>           for line in fh.readlines():
>                    data = line.strip().split('#')
>                     for data[0] in line
>                             print line
>
> I tried but i donot know how to create 1#2#3 in a single line
> regards
> shafreen

While looping over the file you may store alphabets as key in a
dictionary and numbers as values.

for example:

<code_untested>
d = {}
for line in open('abc_file'):
   data = line.strip().split('#')
   # add the numbers to the 'alphabet' key as a list
   d[data[0]] = d.get(data[0], []) + [data[1]]
<code_untested>

Now you can just iterate over the dictionary and write it into a file


Cheers,



-- 
--
Amit Khemka



More information about the Python-list mailing list