我想將簡單的平板列表複製到嵌套列表中。作爲一個例子:將平板列表複製到嵌套字典
from collections import OrderedDict
simple_list = [5,6,7,8]
nested_dict = OrderedDict([('item1', 1), ('item2', OrderedDict([('item3', 2), ('item4', {'item5': 3})])), ('item6',4)])
new_nested_dict = unflatten(nested_dict, simple_list)
print new_nested_dict
>>> OrderedDict([('item1', 5), ('item2', OrderedDict([('item3', 6), ('item4', {'item5': 7})])), ('item6',8)])
從我的研究到目前爲止,似乎生成器是一個很好的方法。但是,在查看文檔之後,我仍然不完全清楚如何實現我想要使用它們的內容。
def unflatten(nested_items, flat_data, start=0):
if isinstance(nested_items, OrderedDict):
nested_items = nested_items.values()
idx = start
for x in nested_items:
if isinstance(x, Iterable):
for i in unflatten(x, flat_data, start=idx):
yield i
else:
idx += 1
yield flat_data[idx]
有人能指出我在做什麼錯嗎?我更願意接受一種完全不同的方法。謝謝。