1 回答

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
在進(jìn)行遞歸調(diào)用時(shí),您應(yīng)該將父鍵作為路徑進(jìn)行跟蹤,以便在看到鍵UNK時(shí)可以將路徑與當(dāng)前值一起打印出來(lái):
def myprint(d, path=None):
if path is None:
path = []
for k, v in d.items():
if k == '<UNK>':
print(' '.join(path + [str(v)]))
elif isinstance(v, dict):
myprint(v, path + [k])
以便myprint(d)輸出:
adipisci foo 2
adipisci adipisci 2
adipisci non adipisci 2
adipisci est 3
adipisci tempora 5
請(qǐng)注意,如果您使用的是 Python 3.5 或更高版本,則可以使用通用解包來(lái)打印以下項(xiàng)目path:
print(*path, v)
而不是print(' '.join(path + [str(v)])).
添加回答
舉報(bào)