Re: Any simple way to flatten all but the bottom level?
- To: mathgroup at smc.vnet.net
- Subject: [mg72379] Re: Any simple way to flatten all but the bottom level?
- From: "wouter meeussen" <wouter.meeussen at pandora.be>
- Date: Sat, 23 Dec 2006 06:14:38 -0500 (EST)
- References: <emb4dh$950$1@smc.vnet.net>
generalising: it takes some care to operate on the lowest level where the head "List" occurs: without assurance that the element count will always be three, and without knowing that all elements will be atoms (but could also be "h[0]"), we can still use: li = {{0, 0, 0}, {{0, 0, 13}, {0, 1, 9}, {0, 2, 5},{0, 2, 5}, {0, 3, 1}}, {{1, 0, 4}, {1, 1, h[0]}}}; Flatten[li /. {expr__} :> (z[expr] /; FreeQ[z[expr], List])] /. z -> List where we explicitly check for "List" on the lowest level. dontdont@gmail has a point: Flatten could have been constructed working 'from bottom level up' just as well as the implemented 'from top level down'. But it doesn't. W.