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