Re: How to get sub-list elements at certain position in a long list
- To: mathgroup at smc.vnet.net
- Subject: [mg123082] Re: How to get sub-list elements at certain position in a long list
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>
- Date: Wed, 23 Nov 2011 07:03:52 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jafuf7$rs7$1@smc.vnet.net>
On Tue, 22 Nov 2011 10:44:55 -0000, Gy Peng <hitphyopt at gmail.com> wrote: > Dear Experts, > > I have a list: > > {{{{2.5}, {3.8, 31}, {54.23, 46.263, 45.987}, *{-82.1476,** 5.17782, > -205.36}*}, {{2.5}, {4.2, 30}, {233.835, 46.469, > 46.819}, *{93.8625, -13.9818, -198.778}*}}, {{{2.5}, {4.1,30}, > {139.845, 15.719, 155.87}, *{93.6633,**4.46398, -205.432}*}, {{2.5}, > {2.6, > 32}, {113.381, 40.988,85.09}, *{90.1206, 16.9792, -205.314}*}}, {{{2.5}, > {3.1,30}, {113.858, 34.709, 87.567}, *{55.3298,**17.7214, -211.648}*}, > {{2.5}, {2.7, 30}, {110.54, 31.595,85.601}, *{-25.8558, 175.588, > -121.105}* > }}} > > How do I get each 4th sublist element in the last level? I mean, I want > to > get a list looks like: > {*{-82.1476, **5.17782, -205.36}, **{93.8625, -13.9818, > -198.778},**{90.1206, > 16.9792, -205.314},**{55.3298,**17.7214, -211.648},**{-25.8558, 175.588, > -121.105}}* > which only includes every 4th element in the last level. Do I describe my > question clearly? > > Better not to use any "For", simple Map or Thread method are preferred. > > Thank you very much!!! > * > * I'm not sure where all the superfluous *'s have come from, but these render your expression syntactically invalid, so I have removed them. lst = {{ {{2.5},{3.8, 31},{54.23, 46.263, 45.987},{-82.1476, 5.17782, -205.36}}, {{2.5},{4.2, 30},{233.835, 46.469, 46.819},{93.8625, -13.9818, -198.778}}}, {{{2.5},{4.1, 30},{139.845, 15.719, 155.87},{93.6633, 4.46398, -205.432}}, {{2.5},{2.6, 32},{113.381, 40.988, 85.09},{90.1206, 16.9792, -205.314}}}, {{{2.5},{3.1, 30},{113.858, 34.709, 87.567},{55.3298, 17.7214, -211.648}}, {{2.5},{2.7, 30},{110.54, 31.595, 85.601},{-25.8558, 175.588, -121.105}} }} You can use Part: lst[[All, All, 4]] {{{-82.1476, 5.17782, -205.36}, {93.8625, -13.9818, -198.778}}, {{93.6633, 4.46398, -205.432}, {90.1206, 16.9792, -205.314}}, {{55.3298, 17.7214, -211.648}, {-25.8558, 175.588, -121.105}}} Or, if you insist on a solution with Map, Map[#[[4]] &, lst, {2}] {{{-82.1476, 5.17782, -205.36}, {93.8625, -13.9818, -198.778}}, {{93.6633, 4.46398, -205.432}, {90.1206, 16.9792, -205.314}}, {{55.3298, 17.7214, -211.648}, {-25.8558, 175.588, -121.105}}}