Re: Changing a list with the information of other
- To: mathgroup at smc.vnet.net
- Subject: [mg131411] Re: Changing a list with the information of other
- From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
- Date: Wed, 3 Jul 2013 05:03:26 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
Good morning
I have the following (possibly very simple) problem.
I have a list, created using a Table
{{0, 1}, {1, w}, {2, 1 + w}, {3, 1 + 2 w}, {4, 2}, {5, 2 w}, {6, 2 + 2 w}, {7, 2 + w}}.
Then, using another Table, I created the list
{1, 1 + w, 2 + w, 2 w, 2, 2 + 2 w, 1 + 2 w, w}
Note that all these elements appear always in second place, in the ordered pairs of the first list. What I want is an instruction that allows to replace all these elements by the ones that appear first in the ordered pairs above. That is, I would like to replace this list by the new one
{0, 2, 7, 5, 4, 6, 3, 1}.
As you may guess this is only of interest when the lists are very big (with thousands of elements).
Thank you
Hi,
Try this:
lst1 = {{0, 1}, {1, w}, {2, 1 + w}, {3, 1 + 2 w}, {4, 2}, {5,
2 w}, {6, 2 + 2 w}, {7, 2 + w}};
lst2 = {1, 1 + w, 2 + w, 2 w, 2, 2 + 2 w, 1 + 2 w, w};
f[a_] := Select[lst1, #[[2]] == a &][[1, 1]];
Map[f, lst2]
{0, 2, 7, 5, 4, 6, 3, 1}
Have fun, Alexei
Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG
Office phone : +352-2454-2566
Office fax: +352-2454-3566
mobile phone: +49 151 52 40 66 44
e-mail: alexei.boulbitch at iee.lu