我有以下结构:[ { u'123456': {'name': "Bill"}, u'234567': {'name': "Dave"}, u'345678': {'name': "Tom"} },]在for循环期间,使用扩展功能将新项目添加到列表中。不幸的是,这导致以下结构: [ { u'123456': {'name': "Bill"}, u'234567': {'name': "Dave"}, u'345678': {'name': "Tom"} }, { u'555555': {'name': "Steve"}, u'666666': {'name': "Michael"}, u'777777': {'name': "George"} } ]预期的结果实际上是一个平面结构,如下所示: [ { u'123456': {'name': "Bill"}, u'234567': {'name': "Dave"}, u'345678': {'name': "Tom"}, u'555555': {'name': "Steve"}, u'666666': {'name': "Michael"}, u'777777': {'name': "George"} } ]是否可以追加到列表中,以便以扁平的方式构建结构。或者循环结束后是否可以展平?
3 回答

www说
TA贡献1775条经验 获得超8个赞
如果您的列表已命名l,则可以使用l[0].update(new_dict)。例子:
l = [{u'123456': {'name': "Bill"}}]
l[0].update({u'234567': {'name': "Dave"}})
print(l)
好的格式化输出是:
[
{
u'123456': {'name': 'Bill'},
u'234567': {'name': 'Dave'}
}
]

子衿沉夜
TA贡献1828条经验 获得超3个赞
您可以使用.update(),但是如果您有重复的键,这将覆盖值。
def flatten(results):
newresult = {}
for subdict : results:
newresult.update(subdict)
return [newresult]
添加回答
举报
0/150
提交
取消