Simple list problem that's defeating me!
Mark Lawrence
breamoreboy at yahoo.co.uk
Tue Jun 22 10:40:46 EDT 2010
On 22/06/2010 15:06, Neil Webster wrote:
> Hi all,
>
> I've got a simple problem but it's defeated me and I was wondering if
> somebody could point out where I'm going wrong or offer an alternative
> solution to the problem?
>
> I have a list of lists such as [[a,2,3,4],[b,10,11,12], [a,2,3,4]]. I
> need to combine the two lists that have the same first character in
> this example 'a'. In reality there are 656 lists within the list.
>
> My attempt so far is:
> L = [[a,2,3,4],[b,10,11,12], [a,2,3,4]]
> d = []
> z = 1
> while z<= len(L):
> for a in L:
> if L.count(a[0])> 1:
> d.append(a[2:])
>
> summed = [sum(pair) for pair in zip(d[0], d[1])]
> z = z+1
> print summed
>
> Any pointers more than welcome.
>
> Thanks all.
>
My simplistic approach.
Sort the list (this happens in place).
Use the itertools groupby function to place everything together, see
http://docs.python.org/library/itertools.html?highlight=groupby#itertools.groupby
Combine the lists in the groups.
HTH.
Mark Lawrence.
More information about the Python-list
mailing list