Re: Clever way to manipulate lists
- To: mathgroup at smc.vnet.net
- Subject: [mg94385] Re: Clever way to manipulate lists
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 11 Dec 2008 07:26:59 -0500 (EST)
- References: <ghqjve$14i$1@smc.vnet.net>
Hi, list1 = {{x1, y1}, {x2, y2}, {x3, y3}, {x4, y4}, {xN, yN}}; list2 = {{x1, z1}, {x3, z3}, {x4, z4}, {xN, zN}} and Intersection[list1, list2, SameTest -> (First[#1] === First[#2] &)] or Fold[DeleteCases[#1, #2] &, list1, Complement[list1, list2, SameTest -> (First[#1] === First[#2] &)]] ?? Regards Jens guerom00 wrote: > Hi everyone, > > I'm still struggling through lists manipulation. I'll take a concrete > example to illustrate my point. > Let's say I have a first list, say coordinates on a regular grid : > > list1={{x1,y1},{x2,y2},{x3,y3}...{xN,yN}} > > This obviously has a Length of N. Now, let's say I have a second list. > In this one, there are fewer than N elements, some points are > missing... Let's say it misses a point at x2 : > > list2 ={{x1,z1},{x3,z3},{x4,z4}...{xN,zN}} > > Now, since those two lists are not of the same length, I cannot add > them, substract them or something. But list2 is included in list1 (in > the sense of set theory). Now, what I want to do is, in this example, > remove the point {x2,y2} from list1 and then the two list will have > the same length and I'll be able to manipulate them as I want. > Right now, I do that with For loops (detect elements which are in > list1 and not in list2 and delete them, etc...) and that works but it > is not elegant. > I'm looking for a concise, elegant way to do that if somebody sees > what I mean... > > Thanks in advance :) >