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

MathGroup Archive 2010

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

Search the Archive

Re: Extracting some elements, members of another list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112435] Re: Extracting some elements, members of another list
  • From: Adriano Pascoletti <adriano.pascoletti at uniud.it>
  • Date: Wed, 15 Sep 2010 04:40:35 -0400 (EDT)

Dispatch should be a good candidate:

In[1]:= list1 = {{phone1, data1}, {phone2, data2}, {phone3, data3},
       {phone4, data4}, {phone5, data5}, {phone6, data6}, {phone7, data7},
       {phone8, data8}};
rules = Dispatch[Apply[#1 -> {##1} & , list1, {1}]]
Out[2]= Dispatch[{phone1 -> {phone1, data1}, phone2 -> {phone2, data2},
     phone3 -> {phone3, data3}, phone4 -> {phone4, data4},
     phone5 -> {phone5, data5}, phone6 -> {phone6, data6},
     phone7 -> {phone7, data7}, phone8 -> {phone8, data8}}]


In[5]:= list2 = {phone2, phone3, phone7};
list2 /. rules
Out[6]= {{phone2, data2}, {phone3, data3}, {phone7, data7}}


Adriano Pascoletti


2010/9/14 Nacho <ncc1701zzz at gmail.com>

> Hi!
>
> I would like your advice about this problem:
>
> I have a list of elements, consisting in phone numbers with some data:
>
> list1= { { phone1, data1}, {phone2, data2}, {phone3, data3} .... }
>
> And a list of phones, a subset of the phone numbers in list1
>
> list2= {phone2, phone3, phone7... }
>
> I'd like to extract the elements from list1 whose phone numbers are
> present in list 2, that is:
>
> result= { { phone2, data2}, {phone3, data3, {phone7, data7} .... }
>
> I've used this with small lists and it works fine:
>
> result = Select[list1, MemberQ[list2, #[[1]]] &];
>
> The problem is that now I would like to use it with big lists. list1
> is over 1.000.000 elements long and list2 is about 500.000 elements
> long.  Ordering is not a problem, I could resort the lists.
>
> Any hint to extract this list faster? It seems to take a lot of time
> (estimation is about 5 hours and I have to do it repeatedly)
>
>
> Thanks!
>
>


  • Prev by Date: Re: Tabulating expressions dependent on two variables
  • Next by Date: Re: Extracting some elements, members of another list
  • Previous by thread: Re: Extracting some elements, members of another list
  • Next by thread: Re: Extracting some elements, members of another list