Re: Sorting a list of pairs on the second elements
- To: mathgroup at smc.vnet.net
- Subject: [mg51372] Re: Sorting a list of pairs on the second elements
- From: "Peltio" <peltio at twilight.zone>
- Date: Fri, 15 Oct 2004 02:47:12 -0400 (EDT)
- References: <cklmi7$f1o$1@smc.vnet.net>
- Reply-to: "Peltio" <peltioNOSP at Mdespammed.com.invalid>
- Sender: owner-wri-mathgroup at wolfram.com
"János" wrote > Map[Reverse,Sort[Map[Reverse,collectedDnaBin]]] > Sort[collectedDnaBin,#1[[2]] < #2[[2]] &] > but that does not want to do the trick for me. I wonder why. It should work, albeit inefficently. Mmmmm, have you tried with parenthesis wrapped around the pure function? Sort[collectedDnaBin,(#1[[2]] < #2[[2]])&] Have you tried it in a fresh kernel? >In general, if I have a list whose elements are m-member lists, like >{{a1,...,am},...,{z1,...,zm}}, then my question is what is the >best/fastest way to sort it on the k-th elements of the members where >1<=k<=m and ak,...,zk are arbitrary objects - in my case Strings - and >use as little memory for it as possible. Dunno for the general case, but this -very inelegant - approach to sort according to the last element seems to be pretty fast (lots of procedures but applied to the data as a whole, without timeconsuming mapping on every single element) Transpose@Reverse@Transpose@Sort@Transpose@Reverse@Transpose[ collectedDnaBin ] ( The first and last three procs just implement a swap function swap[list_]:=Transpose@Reverse@Transpose[list] ) The group's gurus will certainly find a proc at least ten times faster than this, I'm sure. cheers, Peltio Invalid address in reply-to. Crafty demunging required to mail me.
- Follow-Ups:
- Re: Re: Sorting a list of pairs on the second elements
- From: János <janos.lobb@yale.edu>
- Re: Re: Sorting a list of pairs on the second elements