Python: 获取字典结构中的所有字符串
Python: Getting all strings inside dictionary structure
警告:这仍然是 Python 2.7!
出于某种原因,以下函数的运行时间极慢:
def get_content(d,content):
if isinstance(d,unicode):
content += d
content += u'\n'
elif isinstance(d,dict):
for key in d:
content += get_content(d[key],content)
elif isinstance(d,list):
for el in d:
content += get_content(el,content)
return content
content = get_content(D,u'')
虽然 D
很小。没有什么疯狂的事情发生在尺寸方面。
你看到问题是什么了吗?或者什么是解决任务的更好方法?
编辑:我将代码更改为...
def get_content(d,content):
if isinstance(d,unicode):
content += [d]
elif isinstance(d,dict):
for key in d:
content += get_content(d[key],content)
elif isinstance(d,list):
for el in d:
content += get_content(el,content)
return content
content = get_content(D,[])
...它仍然有同样的问题。
问题是您在每次递归时都重新附加了全部内容。要解决将空列表传递给每个 get_content
调用的问题。
def get_content(d,content):
if isinstance(d,unicode):
content += [d]
elif isinstance(d,dict):
for key in d:
content += get_content(d[key],[])
elif isinstance(d,list):
for el in d:
content += get_content(el,[])
return content
content = get_content(D,[])
警告:这仍然是 Python 2.7!
出于某种原因,以下函数的运行时间极慢:
def get_content(d,content):
if isinstance(d,unicode):
content += d
content += u'\n'
elif isinstance(d,dict):
for key in d:
content += get_content(d[key],content)
elif isinstance(d,list):
for el in d:
content += get_content(el,content)
return content
content = get_content(D,u'')
虽然 D
很小。没有什么疯狂的事情发生在尺寸方面。
你看到问题是什么了吗?或者什么是解决任务的更好方法?
编辑:我将代码更改为...
def get_content(d,content):
if isinstance(d,unicode):
content += [d]
elif isinstance(d,dict):
for key in d:
content += get_content(d[key],content)
elif isinstance(d,list):
for el in d:
content += get_content(el,content)
return content
content = get_content(D,[])
...它仍然有同样的问题。
问题是您在每次递归时都重新附加了全部内容。要解决将空列表传递给每个 get_content
调用的问题。
def get_content(d,content):
if isinstance(d,unicode):
content += [d]
elif isinstance(d,dict):
for key in d:
content += get_content(d[key],[])
elif isinstance(d,list):
for el in d:
content += get_content(el,[])
return content
content = get_content(D,[])