Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Making a lists with conditions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85703] Re: Making a lists with conditions
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Tue, 19 Feb 2008 07:05:48 -0500 (EST)
  • Organization: Uni Leipzig
  • References: <fpduuo$rd3$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de

Hi,

get[lst_, key_] := First[Select[lst, MatchQ[#, {key, _}] &]]

ff[lst1_, lst2_] :=
  If[! MemberQ[lst2, {#, _}], {#, 0}, get[lst2, #]] & /@ lst1

may help or

get1[lst_, key_] :=
  Module[{elem},
   elem = Select[lst, MatchQ[#, {key, _}] &];
   If[{} === elem, {key, 0},
    elem[[1]]
    ]
   ]

ff1[lst1_, lst2_] := get1[lst2, #] & /@ lst1

Regards
   Jens


Guillermo Sanchez wrote:
> Dear group
> 
> I have two list (list1:{a1, ...ai,  aj, ..., an}, list2:{{ai,
> bi}, ..., {aj, bj}}.
> 
> I wish to obtain a new list (list3} where be included all members of
> list1 and list2. If elements ak is not included in list2 then write
> {ak, 0}.
> 
> Here is an example:
> 
> list1 = {3.8,  3.85, 3.9,  3.95,  4., 4.05,  4.1};
> list2 = {{3.85, 120}, { 4.0 , 111}, {4.1, 314}};
> 
> ff[list1_, list2_] := =BFlist1, list2?
> 
> 
> Here is the ouput that I wist to obtain
> 
> Out:={{3.8, 0} , {3.85`, 120}, {3.9`, 0}, {3.95, 0}, {4.`, 111},
> {4.05`, 0}, {4.1`, 314}}
> 
> I have a method but it is two complicate. I am sure that some members
> of the group will find a elegant solution
> 
> Thanks
> 
> Guillermo
> 


  • Prev by Date: RE: Multiple data sets with ListPlot and different PointSizes - Mesh
  • Next by Date: Re: Summation question
  • Previous by thread: Re: Making a lists with conditions
  • Next by thread: Sterographic display