擅长:python、mysql、java
<p>我相信这会解决问题的。其主要思想是相同的,期望您必须递归地打印结构,记住缩进并在调用函数时传递它。你知道吗</p>
<p>你的第一个版本的代码需要一个小的修正,在返回语句的缩进是一个标签太大。而且,只有advice、list和dict是变量名的糟糕选择,因为它们已经是内置类型了。你知道吗</p>
<pre><code>import os
def f(folder):
mape={}
sez = os.listdir(folder)
for ts in sez:
# if ts == "." or ts == "..": continue
fullName = folder + '/' + ts
if os.path.isfile(fullName):
size=os.path.getsize(fullName)
mape[ts]=size
else:
mape[ts]=f(fullName)
return (mape)
struktura = f('.')
def output(tree, zam=0):
for i in tree:
if isinstance(tree[i], (int, long)):
print "{0}{1} ({2})".format(' '*zam*4, i, tree[i])
else:
print ' '*zam*4+i
output(tree[i],zam+1)
output(struktura)
</code></pre>
<p>当然,output函数会根据需要进行打印。
我希望这有助于解决你的问题。你知道吗</p>
<p>PS:Kakšnečudne domače naloge mate to?。。。你知道吗</p>