我想用Python打印嵌套哈希,如下所示:
example_dict = {
'key1' : 'value1',
'key2' : {
'key2a': 'value2a'
},
'key3' : {
'key3a': {
'key3aa': 'value3aa',
'key3ab': 'value3ab',
'key3ac': 'value3ac'
},
'key3b': [
'value3b1',
'value3b2'
]
},
}
对这样的事情:
key1 value1
key2 key2a value2a
key3 key3a key3aa value3aa
key3 key3a key3ab value3ab
key3 key3a key3ac value3ac
key3 key3b value3b1
key3 key3b value3b2
我对Python还不是很熟悉,几个小时后我仍然被困在这里。你知道吗
我目前正在处理这个函数:
def recursive(src, res, line = ''):
if isinstance(src, dict):
for key, value in src.items():
line += str(' ' + key)
recursive(value, res, line)
elif isinstance(src, list):
for litem in src:
recursive(litem, res, line)
else:
line += str(' ' + str(src))
res.append(line)
我试图将每一行添加到一个列表中,以便以后使用它,但我认为我没有正确的方法来处理共享变量(line),因为在每个dict中,递归调用都是使用同一深度级别的另一个dict键进行的,所以我得到了以下结果:
key3 key3a key3aa value3aa
key3 key3a key3aa key3ac value3ac
key3 key3a key3aa key3ac key3ab value3ab
key3 key3a key3b value3b1
key3 key3a key3b value3b2
key3 key2 key2a value2a
key3 key2 key1 value1
什么是Python式的方法?你知道吗
使用generator(^{} 语句)可以递归地执行以下操作:
代码:
需要注意的一点是需要从递归到的生成器中重新生成结果。在这里使用:
相当于:
测试代码:
结果:
非常简单的递归实现。你知道吗
我得到了这个工作,但它有点黑客,使用
append
添加一个元素,extend
添加列表中的所有元素。希望能有帮助:输出:
相关问题 更多 >
编程相关推荐