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]