Re: Howto sum up a list?
- To: mathgroup at smc.vnet.net
- Subject: [mg106972] Re: Howto sum up a list?
- From: prashanth <prash.mr at gmail.com>
- Date: Fri, 29 Jan 2010 07:51:00 -0500 (EST)
- References: <hjrf6g$mur$1@smc.vnet.net>
On Jan 28, 12:43 pm, Jonas Stein <n... at jonasstein.de> wrote: > How can i sum up the list: > > MyList = {{eggs, 4}, {milk, 1}, {eggs, 1}, {milk, 1}} > > I want to get something like: > > {{eggs, 5},{milk, 2}} > > I tyied Tally[], but that ignored the factor 4 in {eggs, 4} > > Thank you. > > -- > Jonas Stein <n... at jonasstein.de> The below is a brute-force way fo summing up. it is not really efficient for a larger no. of variables. but, it will work fairly decently. MyList = {{eggs, 4}, {milk, 1}, {eggs, 1}, {milk, 1}} eggstab =Table[MyList[[All, 1]][[i]] == eggs, {i, 1, Length[MyList]}]; milktab =Table[MyList[[All, 1]][[i]] == milk, {i, 1, Length[MyList]}]; epos = Position[eggstab, True]; mpos = Position[milktab, True]; etot = Total[Extract[MyList[[All, 2]], epos]]; mtot = Total[Extract[MyList[[All, 2]], mpos]]; Print[{{"eggs", etot}, {"milk", mtot}}]