Re: help with lists operations
- To: mathgroup at smc.vnet.net
- Subject: [mg67844] Re: [mg67822] help with lists operations
- From: Selwyn Hollis <sh2.7183 at earthlink.net>
- Date: Mon, 10 Jul 2006 06:38:00 -0400 (EDT)
- References: <200607090850.EAA24679@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Here's one approach. I believe it handles the case of repeated matches as well, and it's quite fast on long lists (although I'll no doubt soon regret that claim). This shows the steps clearly: Map[{#, Cases[f2, {First[#], _}]} &, f1] DeleteCases[%, {_, {}}] Map[{#[[1, 2]], Last[Transpose[Last[#]]] } &, %] Map[First[#]Last[#] &, %] Total[Flatten[%]] This wraps it all together: Total[ Flatten[ First[#]Last[#] & /@ ({#[[1, 2]], Last[Transpose[Last[#]]] } & /@ DeleteCases[ {#, Cases[f2, {First[#], _}]} & /@ f1, {_, {}}]) ] ] --- Selwyn Hollis On Jul 9, 2006, at 4:50 AM, omk wrote: > Hi ALL, > I am a novice in Mathematica, know that there are no easy ways for > learning, so spent 2 weeks trying to solve an easy problem, but so > far have only ugly solutions. > Yes, I read and reread the Book as well as searched for similar > problems on the Forum. > I have 2 lists: > f1={{2, 1}, {3, 1}, {7, 2}, {9, 1}, {10, 1}, {12, 1}, {14, 3}, {19, > 3}, {23, 1}, {24, 1}, {25, 1}} > f2={{2, 2}, {5, 1}, { > 6, 2}, {10, 1}, {14, 3}, {16, 1}, {18, 1}, {21, 3}, {22, 1}, {26, 1}} > I need to compare sublists (pairs) from the first list f1 with > pairs from f2. > If pairs with 2 first equal numbers exist, I have to multiply the > second, after having products for all such pairs, I need to receive > their sum. > Say from f1 and f2 I have {2,1} and {2,2}, the product is 1 2=2, > similar {10,1} and {10,1},{14,3} and {14,3}, > so it should be 2+1+9=12 > Any ideas are very welcome > TIA, > omk >
- References:
- help with lists operations
- From: omk <omk@iname.com>
- help with lists operations