Hallöchen! Martin Skou writes:
> Not quite, but almost: > > > data=[["Peter", > ["Ian", > [["Randy", > ["Clara"]]]]], > "Paul", > ["Mary", > ["Arthur"]]] This was flawed, there were two brackets too much: data=[["Peter", ["Ian", ["Randy", ["Clara"]]]], "Paul", ["Mary", ["Arthur"]]] > def show(data,level): > for i in data: > if i.__class__.__name__=='list': > show(i,level+1) > else: > print '%s->%s' % ('-'*level,i) > > > show(data,0) It doesn't show Paul and Mary on the same level. I (think I) solved the problem with this: def print_tree(tree, line_columns=[0]): for i, item in enumerate(tree): current_line = u"" for j, pos in enumerate(line_columns): current_line += (pos - j) * " " + "|" print current_line if isinstance(item, list): print current_line[:-1] + "+---> " + item[0] new_line_columns = line_columns + [line_columns[-1] + 6 + len(item[0]) // 2] if i == len(tree) - 1: del new_line_columns[-2] print_tree(item[1], new_line_columns) elif isinstance(item, basestring): print current_line[:-1] + "+---> " + item Tschö, Torsten. -- Torsten Bronger, aquisgrana, europa vetus Jabber ID: [EMAIL PROTECTED] (See http://ime.webhop.org for ICQ, MSN, etc.) -- http://mail.python.org/mailman/listinfo/python-list