Pythonのお勉強 Part 27
■ このスレッドは過去ログ倉庫に格納されています
0488デフォルトの名無しさん
2008/07/11(金) 15:48:51def pr(d):
def spaces(indent): return " " * (indent * 4)
ROOT, ROOT_END, ITEM = 1, 2, 3
stack = [(ROOT_END, 0, d, None), (ROOT, 0, d, None)]
while stack:
type, indent, key, value = stack.pop()
if type == ROOT:
print "%s{" % spaces(indent)
for k, v in reversed(key.items()):
stack.append((ITEM, indent + 1, k, v))
elif type == ROOT_END:
print "%s}" % spaces(indent)
else:
s = "%s%s:" % (spaces(indent), repr(key))
if isinstance(value, dict):
stack.append((ROOT_END, indent, value, None))
stack.append((ROOT, indent, value, None))
else:
s += " %s" % repr(value)
print s
■ このスレッドは過去ログ倉庫に格納されています