Summing a 2D list

Chris cwitts at gmail.com
Thu Jun 12 10:12:21 EDT 2008


On Jun 12, 3:48 pm, Mark <markjtur... at gmail.com> wrote:
> Hi all,
>
> I have a scenario where I have a list like this:
>
> User            Score
> 1                 0
> 1                 1
> 1                 5
> 2                 3
> 2                 1
> 3                 2
> 4                 3
> 4                 3
> 4                 2
>
> And I need to add up the score for each user to get something like
> this:
>
> User            Score
> 1                 6
> 2                 4
> 3                 2
> 4                 8
>
> Is this possible? If so, how can I do it? I've tried looping through
> the arrays and not had much luck so far.
>
> Any help much appreciated,
>
> Mark

user_score = {}
for record in list:
    user, score = record.split()
    if user in user_score: user_score[user] += score
    else: user_score[user] = score

print '\n'.join(['%s\t%s' % (user, score) for user,score in
sorted(user_score.items())])

You don't mention what data structure you are keeping your records in
but hopefully this helps you in the right direction.



More information about the Python-list mailing list