Обратите внимание, что словари не упорядочены, поэтому, чтобы быть уверенным, что значения будут обрабатываться в упорядоченном формате, вам необходимо сначала отсортировать их.Пожалуйста, найдите образец ниже:
d={1:{2:'tst', 3:'tst2'}, 4:{...} }
for key in sorted(d):
for skey in sorted(d[key]):
#do something
ИЛИ как-то так:
from operator import itemgetter
d={1:{2:'tst', 3:'tst2'}, 4:{6:'tst7', 7:'tst12'} }
for key, val in sorted(d.items(), key=itemgetter(0)):
for skey, sval in sorted(val.items(), key=itemgetter(0)):
print key, skey, sval
Это означает, что в вашем случае:
class tree(object):
tree_as_string = ""
def __init__(self):
self.id = ""
self.daughters = {1 = 'node0', 2 = 'node1'}
def get_as_string(self):
s = ''
for key in sorted(self.daughters):
tree_as_string = s.join([tree_as_string, key])
return tree_as_string