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

MathGroup Archive 2010

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

Search the Archive

Re: newbie list question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg115002] Re: newbie list question
  • From: Leonid Shifrin <lshifr at gmail.com>
  • Date: Tue, 28 Dec 2010 06:48:54 -0500 (EST)
  • References: <if70bt$330$1@smc.vnet.net>

Hi Gareth,

Assuming, that all elements from the second list are present in the
first, here is a simple way:

Flatten[Map[Position[listA, #, 1, 1] &, listB]]

For large listA and listB, this solution does not scale well however.
Here is another one, perhaps
a bit more obscure, but  with a much better performance:

listB /. Dispatch[Thread[listA -> Range[Length[listA]]]]

Again, both solutions assume that all elements in listB are also in
listA.

Hope this helps.

Regards,
Leonid


On Dec 26, 12:02 pm, Gareth Edwards <gareth.edwa... at cubicmotion.com>
wrote:
> Hi,
>
> Liking Mathematica a lot, but struggling with the early part of the learn=
ing curve, i.e. don't know what I don't know...
>
> What would be the neatest syntax for finding the first location of elemen=
ts from one list in another? For example:
>
> listA = { 4,5,8,2,6,4 }
> listB = { 8,4,2 }
>
> I would like a function to return {3,1,4} in this case (the first locatio=
n in A of each element in B)
>
> Many thanks!



  • Prev by Date: Re: newbie list question
  • Next by Date: Re: bibtex support in Mathematica 8
  • Previous by thread: Re: newbie list question
  • Next by thread: Re: newbie list question