Re: Re: Re: Select in Math.
- To: mathgroup at smc.vnet.net
- Subject: [mg18595] Re: [mg18532] Re: [mg16518] Re: Select in Math.
- From: BobHanlon at aol.com
- Date: Tue, 13 Jul 1999 01:01:27 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Arnold, As best as I can interpret the original question, I do not understand your result. However, without a definition of the problem with more clarity than the one example, I can't say one way or the other. Perhaps, Eugene (kewjoi at hixnet.co.za) can clarify what the desired output should be. Bob Hanlon In a message dated 7/9/99 4:57:32 AM, arnoldk at gauss.cam.wits.ac.za writes: >Regarding your solution on extracting increasing sublists: > >[mg16518]. Consider > >In[42]:= >list={{1,4,3,2},{1,3,2,4},{2,3},{5},{6,8}}; > >In[43]:= >list=Union[Sort /@ list] > >Out[43]= >{{5},{2,3},{6,8},{1,2,3,4}} > >In[44]:= >elts=Union[Flatten[%]] > >Out[44]= >{1,2,3,4,5,6,8} > >In[45]:= >incrlist=Select[list,Union[Flatten[Complement[list,{#}]]]!=elts&] > >Out[45]= >{{5},{6,8},{1,2,3,4}} > >However, the correct output should be {{5},{2,3},{6,8}}. > Original messages: In a message dated 3/8/99 6:43:38 PM, kewjoi at hixnet.co.za writes: >My question is how can I extract (select) list of lists in increasing >order? >For example: >In[2]:=list={{{1,2,3,4},{1,2,4,3}},{{2,3,1},{5}},{6,7}} >Out[2]={{{1,2,3,4},{1,2,4,3}},{{2,3,1},{5}},{6,7}} > >I 'd like to obtain only the parts in increased order, therefore the >result should be : >Out[3]={{1,2,3,4},{5},{6,7}} >I did try (Cases, Select, and Extract) but definitely not in proper way. > Eugene, This may be what you want. list={{{1,2,3,4},{1,2,4,3}},{{2,3,1},{5}},{6,7}}; The nesting of the lists does not appear to be pertinent to your problem, so simplify the structure by eliminating the nesting. Also, Sort sublists and eliminate duplicates: list = Union[Sort /@ {list //. {x__List} -> Sequence[x]}] {{5}, {6, 7}, {1, 2, 3}, {1, 2, 3, 4}} Eliminate subsets elements = Union[Flatten[list]]; list = Select[list, Not[Union[Flatten[ Complement[list, {#}]]] == elements]&] {{5}, {6, 7}, {1, 2, 3, 4}} Sort by first element Sort[list, First[#1] < First[#2]&] {{1, 2, 3, 4}, {5}, {6, 7}} Bob Hanlon