def get_values(d):
values = []
for v in d.values():
if isinstance(v, dict):
get_values(v)
else:
values.append(v)
return values
a = {4: 1, 6: 2, 7: {8: 3, 9: 4, 5: {10: 5}, 2: 6, 6: {2: 7, 1: 8}}}
print(get_values(a))
上面的代碼旨在列印字典中的所有值,但我對遞回不是很有信心,它只給我 [1,2] 作為輸出。有人可以修改它以提供 [1,2,3,4,5,6,7,8] 并解釋它是如何完成的嗎?
uj5u.com熱心網友回復:
您還需要將遞回呼叫中的所有值添加get_values到串列中,否則您將丟棄遞回呼叫所做的所有作業。
def get_values(d):
values = []
for v in d.values():
if isinstance(v, dict):
values.extend(get_values(v))
else:
values.append(v)
return values
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495560.html
標籤:python-3.x 字典 递归
上一篇:用字母和數字在字典串列中排序
