示例=我有一个这样的字典
{10: [10, 12, 13], 11: [11], 12: [14,15],15:[16]}我想要这种类型的输出
{10: [12:[14,15:[16]], 13],11:[]}发布于 2021-04-24 03:41:10
下面的代码适用于您的示例输入。我不确定它是否适用于其他输入。此外,也许它不是实现得最好的程序。但我希望这能有所帮助。
input = {10: [10, 12, 13], 11: [11], 12: [14, 15], 15: [16]}
# {10: [12:[14,15:[16]], 13],11:[]}
key_not_checked = {n: True for n in input}
output = {}
def check_elemnt_inlist(element):
value = input.get(element, None)
if not value:
return element
elif len(value) == 1:
key_not_checked[element] = False
return {element: value}
else:
nested = {}
val = []
for i in value:
if int(i) != int(element):
val.append(check_elemnt_inlist(i))
nested[element] = val
key_not_checked[element] = False
return nested
for key in input:
top_value = input[key]
c = []
if key_not_checked[key]:
for g in top_value:
if int(g) != int(key):
c.append(check_elemnt_inlist(g))
output[key] = c
key_not_checked[key] = False
print(output)输出将如下所示:
{10: [{12: [14, {15: [16]}]}, 13], 11: []}
https://stackoverflow.com/questions/67234985
复制相似问题