MathGroup Archive 2009

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

Search the Archive

Re: Manipulating list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101568] Re: Manipulating list
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Fri, 10 Jul 2009 06:46:01 -0400 (EDT)

On 7/8/09 at 7:13 AM, leekosal at yahoo.com (kosal lee) wrote:

>I am new to Mathematica and I have one particular problem I would
>like you to help me. Suppose I have two lists:

>list1 = {{A,B,C},{D,E,F},{G,H,I}} list2 = {{1,2},{3,4},{5,6}}

>I want to have the third elements in each of member list in list1
>(that is, C,F,I) to appear in the first position in each member list
>in list2

>that is, i want to have  list ={{C,1,2},{F,3,4},{I,5,6}}

Here are a couple of ways to accomplish what you want

In[1]:= list1 = {{a, b, c}, {d, e, f}, {g, h, i}};
list2 = {{1, 2}, {3, 4}, {5, 6}};

In[4]:= MapThread[Join[{Last@#1}, #2] &, {list1, list2}]

Out[4]= {{c, 1, 2}, {f, 3, 4}, {i, 5, 6}}

In[6]:= ArrayFlatten@{{List /@ list1[[All, 3]], list2}}

Out[6]= {{c, 1, 2}, {f, 3, 4}, {i, 5, 6}}

Note, I changed the variable names from uppercase to lowercase.
In general, it is not a good idea to use single uppercase
letters as variable names since will often conflict with
built-in symbols. Specifically, both E and I have built-in
meaning. If you make a habit of naming your functions and
variables so that the first letter is lower case, you are
guaranteed not to have a conflict with built-in objects.



  • Prev by Date: Re: Is it possible to impose a condition on an iterator
  • Next by Date: Re: Manipulating list
  • Previous by thread: Re: Manipulating list
  • Next by thread: Re: Manipulating list