# [Tutor] My first recursive function...

Liam Clarke cyresse at gmail.com
Thu Jul 28 12:23:04 CEST 2005

```Hi all,

Spen too much time coding in VBA, so I'm now paranoid about any code I
write.
Just playing with my first recursive function, and just wanted your
experienced opinions on whether it's likely to blow up in my face,
as it all seems to work fine out of the gates, and that makes me a little
paranoid.

For a given list -

x = [ ['tag', 'CYP'],
['level', '1.000'],
['value', '3.286'],
['extra', [ ['country', 'CYP'], ['date', [ ['year', '1431'], ['month',
'april'], ['day', '1'] ] ], ['location', '370'], ['success', 'yes'] ] ] ]

My data will always be in format [key:info], the question is whether or not
value is a list of [key:info]s also. I then want to turn this into
a nested dictionary.

So, the given function...

def isNested(data):
dic = {}
for (key, info) in data:
if isinstance(info], list) and isinstance(info[0], list):
dic[key] = isNested(info)
else:
dic[key] = info

return dic

...seems to work alright, but as I've already run astray of the the
isNested(data, dic = {} ) gotcha, I'm just covering my bases here.

Are there any other pitfalls with recursion I need to watch for?
(I'm also expecting the occasional list that is simply a list of strings,
hence the and clause in the isinstance check.)

If it's all good, then I'm stoked, as I was writing some very unPythonic
code before this.
(I had one of those moments when you stare at your code, realise it looks
ugly and complicated,
and realise that means you're doing it the wrong way. File > New time, I
call it.)

Thanks for any feedback,

Liam

--
'There is only one basic human right, and that is to do as you damn well