我有以下結(jié)構(gòu):[ { u'123456': {'name': "Bill"}, u'234567': {'name': "Dave"}, u'345678': {'name': "Tom"} },]在for循環(huán)期間,使用擴(kuò)展功能將新項(xiàng)目添加到列表中。不幸的是,這導(dǎo)致以下結(jié)構(gòu): [ { u'123456': {'name': "Bill"}, u'234567': {'name': "Dave"}, u'345678': {'name': "Tom"} }, { u'555555': {'name': "Steve"}, u'666666': {'name': "Michael"}, u'777777': {'name': "George"} } ]預(yù)期的結(jié)果實(shí)際上是一個(gè)平面結(jié)構(gòu),如下所示: [ { u'123456': {'name': "Bill"}, u'234567': {'name': "Dave"}, u'345678': {'name': "Tom"}, u'555555': {'name': "Steve"}, u'666666': {'name': "Michael"}, u'777777': {'name': "George"} } ]是否可以追加到列表中,以便以扁平的方式構(gòu)建結(jié)構(gòu)?;蛘哐h(huán)結(jié)束后是否可以展平?
3 回答

www說
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果您的列表已命名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貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
您當(dāng)前所在的位置是這樣的:
mylist.extend(newdict)
您應(yīng)該使用此:
mylist[0].update(newdict)

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用.update(),但是如果您有重復(fù)的鍵,這將覆蓋值。
def flatten(results):
newresult = {}
for subdict : results:
newresult.update(subdict)
return [newresult]
添加回答
舉報(bào)
0/150
提交
取消