Re: pattern matching and droping elements from list of lists.
- To: mathgroup at smc.vnet.net
- Subject: [mg49744] Re: pattern matching and droping elements from list of lists.
- From: "Curt Fischer" <crf3 at po.cwru.edu>
- Date: Fri, 30 Jul 2004 06:01:58 -0400 (EDT)
- References: <ceargm$av9$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
sean kim wrote: > hello group, > > Outer[List, {a, b, c}, {a, b, c}, {a, b, c}] > > will output > > {{ > {{a, a, a}, {a, a, b}, {a, a, c}}, {{a, b, a}, {a, b, b}, {a, b, c}}, > {{a, c, a}, {a, c, b}, {a, c, c}}}, > {{{b, a, a}, {b, a, b}, {b, a, c}}, {{b, b, a}, {b, b, b}, {b, b, c}}, > {{b, c, a}, {b, c, b}, {b, c, c}}}, > {{{c, a, a}, {c, a, b}, {c, a, c}}, {{c, b, a}, {c, b, b}, {c, b, c}}, > {{c, c, a}, {c, c, b}, {c, c, c}} > }} > > how do I remove {a,a,a} and {b,b,b} and {c,c,c} from above? > > thanks all in advance for any insights Here's one way. I'm not sure how efficient it is. In[1]:= listOfLists=Outer[List,{a,b,c},{a,b,c},{a,b,c}] Out[1]= {{{{a,a,a},{a,a,b},{a,a,c}},{{a,b,a},{a,b,b},{a,b,c}},{{ a,c,a},{a,c,b},{a,c,c}}},{{{b,a,a},{b,a,b},{b,a,c}},{{b,b,a},{b,b,b},{ b,b,c}},{{b,c,a},{b,c,b},{b,c,c}}},{{{c,a,a},{c,a,b},{c,a,c}},{{c,b,a},{ c,b,b},{c,b,c}},{{c,c,a},{c,c,b},{c,c,c}}}} In[2]:= listOfLists/.{y___List,{x_,x_,x_},z___List} -> {y,z} Out[2]= {{{{a,a,b},{a,a,c}},{{a,b,a},{a,b,b},{a, b,c}},{{a,c,a},{a,c,b},{a,c,c}}},{{{b,a,a},{b,a,b},{ b,a,c}},{{b,b,a},{b,b,c}},{{b,c,a},{b,c,b},{b,c,c}}},{{{c,a,a},{c,a,b},{c, a,c}},{{c,b,a},{c,b,b},{c,b,c}},{{c,c,a},{c,c,b}}}}