RE: expanding a list
- To: mathgroup at smc.vnet.net
- Subject: [mg42611] RE: [mg42593] expanding a list
- From: "David Park" <djmp at earthlink.net>
- Date: Fri, 18 Jul 2003 05:25:04 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Alan, The command to use when combining elements of equal length lists is Inner. plist = {0.252, 0.252, 0.257, 0.235}; flist = {7, 5, 6, 4}; Inner[Table[#1, {#2}] &, plist, flist, List] // Flatten {0.252, 0.252, 0.252, 0.252, 0.252, 0.252, 0.252, 0.252, 0.252, 0.252, 0.252, \ 0.252, 0.257, 0.257, 0.257, 0.257, 0.257, 0.257, 0.235, 0.235, 0.235, 0.235} We made a list of tables of elements in the first list, with the repitition taken from the second list, and then Flattened the whole thing to obtain a single list. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Alan Kelly [mailto:Alan.Kelly at tcd.ie] To: mathgroup at smc.vnet.net Hi all, I believe that this is a rather elementary question, but I am not aware of a simple, elegant and efficient solution. I have searched the MathGroup archive, but with no success. I have two lists - both of the same length. The first contains a list of probabilities. For example, suppose the list length is 4 (although in practice it would be much longer) and is of the following form: plist = {0.252, 0.252, 0.257, 0.235}. The second contains a list of integers: flist = {7,5,6,4}. I wish to take the first element of plist and replicate that value using the first element of flist. Similarly for the remaining elements. I should finish with a list of length 7+5+6+4 or 22. Any suggestion please. Many thanks, Alan Kelly Trinity College Dublin