Re: removing subelements
- To: mathgroup at smc.vnet.net
- Subject: [mg56121] Re: removing subelements
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Sat, 16 Apr 2005 03:51:54 -0400 (EDT)
- Organization: Uni Leipzig
- References: <d3o0ta$bqn$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, a) you have not given a valid example data set, so that we can't know what are the other members of the list {..,{1,2,3,4},..,{2,3},..} can be b) if you only want to test a list of lists and remove all elements from that list that are sublists of the other lists than RemoveSubQ[l1 : {{__Integer} ..}, l2_List] := Module[{tmp}, tmp = Select[l1, UnsameQ[#, l2] &]; Or @@ (RemoveSubQ[#, l2] & /@ tmp) ] RemoveSubQ[l1_?VectorQ, l2_List] /; Length[l1] < Length[l2] := False RemoveSubQ[l1_?VectorQ, l2_List] /; Length[l1] == Length[l2] := SameQ[l1, l2] RemoveSubQ[l1_?VectorQ, l2_List] := MemberQ[Partition[l1, Length[l2], 1], l2] RemoveSubmembers[lst_] := (If[RemoveSubQ[lst, #], Null, #] & /@ lst) /. Null -> Sequence[] may help you with In[]:=lst = {{1, 4, 2}, {1, 2}, {1, 2, 3, 4}, {4, 4}, {2, 3}, {1, 2, 3}}; RemoveSubmembers[lst] Out[]={{1, 4, 2}, {1, 2, 3, 4}, {4, 4}} Regards Jens <borges2003xx at yahoo.it> schrieb im Newsbeitrag news:d3o0ta$bqn$1 at smc.vnet.net... > i'm a newbie. How implement the _faster functon_ > which removes in a > list every element that are a subelement. > which means > f[x]:= {..,{1,2,3,4},..,{2,3},..} removes > {2,3}. > thanx a lot. > giorgio borghi >