Extracting some elements, members of another list
- To: mathgroup at smc.vnet.net
- Subject: [mg112404] Extracting some elements, members of another list
- From: Nacho <ncc1701zzz at gmail.com>
- Date: Tue, 14 Sep 2010 05:14:25 -0400 (EDT)
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!
- Follow-Ups:
- Re: Extracting some elements, members of another list
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: Extracting some elements, members of another list