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 please.
And with it comes the only basic human duty, to take the consequences.'
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor