Hello,

On Thu, Nov 04, 2010 at 09:20:04PM +0000, Arnaud
Delobelle wrote:
> Tough requirement, but I think I've got it.  Two
> lambdas, one reduce, one map ;)
> 
> >>> a = {'a' : {'b' :{'/' :[1,2,3,4], 'ba' :{'/' :[41,42,44]}, 'bc' 
> >>> :{'/':[51,52,54], 'bcd' :{'/':[68,69,66]}}},'c' :{'/' :[5,6,7,8]}},'ab' : 
> >>> {'/' :[12,13,14,15]}, 'ac' :{'/' :[21,22,23]}}
> >>> f = lambda v,k=None: v if k=="/" else reduce(list.__add__, map(lambda k: 
> >>> f(v[k],k), v), []) 

Is it that new Python3 thing? :)

P.S.

Here is my variant that still works
in python2:

def i(x):
    r = []
    for k, v in x.iteritems():
        try: r.extend(i(v))
        except: 
            if k == '/': r.extend(v)
    return r

-- 
With best regards,
xrgtn
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to