Hi John,

I would just like to suggest a different approach. Like the old saying goes:

        Some people, when confronted with a problem, think “I know, I’ll 
use regular expressions.” Now they have two problems.
                — Jamie         Zawinski, in comp.lang.emacs

If the delimiter is always the same ('@') you can use split() to get the 
data. Then you can arrange the data in a dictionary of lists, like this.

collapsed_data = {}

for line in mydata:
     id_part, data_part = line[:-1].split('@')

     try:
         collapsed_data[id_part].append(data_part)
     except KeyError:
         #first time insert for that key
         collapsed_data[id_part] = [data_part]

for id, data in collapsed_data.iteritems():
     print '@'.join([id] + data)

That should be it. Python's data types are very powerful.  Of course you 
could just build a huge list comprehension that does it...


Hope that helps,

Hugo
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to