programing problem: list manipulation
- To: mathgroup at smc.vnet.net
- Subject: [mg7600] programing problem: list manipulation
- From: Xah Lee <xah at best.com>
- Date: Thu, 19 Jun 1997 15:53:18 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Another mma programing problem. I have two lists {1,2,3,4,5}, {b1,b2,b3,b4,b5} and I want the result to be {{1,2,b2,b1},{2,3,b3,b2},{3,4,b4,b3},{4,5,b5,b4},{5,1,b1,b5}}. In this particular problem, speed is my number one concern. The best solution I came up is attached below. No doubt some of you will come up with faster constructs. n=5; (*n will be around 5, not large*) pts1=Range at n; pts2=ToExpression/@(StringJoin["b",ToString at #]&/@pts1); Partition[ Flatten[ Transpose[{ Transpose[{pts1,RotateLeft[pts1]}], Transpose[{RotateLeft[pts2],pts2}]}],2 ],4 ] Xah, xah at best.com, http://www.best.com/~xah/ "I'm a programer, you're a programmer."