Re: Lists: how to?

*To*: mathgroup at smc.vnet.net*Subject*: [mg110025] Re: Lists: how to?*From*: Peter Breitfeld <phbrf at t-online.de>*Date*: Sat, 29 May 2010 04:45:41 -0400 (EDT)*References*: <hto90d$kpp$1@smc.vnet.net>

"S. B. Gray" wrote: > Hello: > > I have this line > > subs3 = Subsets[Range[numbr], {3}] which for numbr=7 gives subs3= > > {{1,2,3}, {1,2,4}, {1,2,5}, {1,2,6}, {1,2,7}, {1,3,4}, {1,3,5}, > {1,3,6}, {1,3,7}, {1,4,5}, {1,4,6}, {1,4,7}, {1,5,6}, {1,5,7}, > {1,6,7}, {2,3,4}, {2,3,5}, {2,3,6}, {2,3,7}, {2,4,5}, {2,4,6}, > {2,4,7}, {2,5,6}, {2,5,7}, {2,6,7}, {3,4,5}, {3,4,6}, {3,4,7}, > {3,5,6}, {3,5,7}, {3,6,7}, {4,5,6}, {4,5,7}, {4,6,7}, {5,6,7}} > > Given one of these sublists, say {1,4,5}, I want a nice way to delete > all members of the subs3 list which have 1,4, or 5 in any one of the > three positions. The reduced list in this example would be > {{2,3,6}, {2,3,7}, {2,6,7}, {3,6,7}}. > > The way I'm doing it runs DeleteCases nine times. Is there a better way? > > Steve Gray > This may work, but I don't know if it's fast. First create a pattern for the items to be deleted: testform=Permutations[{1,4,5,_,_},{3}] Then delete all elements matching testform: DeleteCases[subs3,Alternatives @@ testform] you get your result. //Peter -- _________________________________________________________________ Peter Breitfeld, Bad Saulgau, Germany -- http://www.pBreitfeld.de