1

私は次の構造を持っています:

[
  {
    u'123456': {'name': "Bill"}, 
    u'234567': {'name': "Dave"},
    u'345678': {'name': "Tom"}
  },
]

for ループ中に、extend 関数を使用して新しい項目がリストに追加されます。残念ながら、これは次の構造になります。

    [
      {
        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"}
      }
    ]

構造がフラットな方法で構築されるように、リストに追加することは可能ですか?

また

ループが終了した後にフラット化することはできますか?

4

4 に答える 4

1

現在、次のようなものがある場所:

mylist.extend(newdict)

これを使用する必要があります:

mylist[0].update(newdict)
于 2013-05-27T10:30:11.577 に答える
0

両方の辞書の項目を一緒に追加できます。

>>> mylist = [
  {
    u'123456': {'name': "Bill"}, 
    u'234567': {'name': "Dave"},
    u'345678': {'name': "Tom"}
  },
]
>>> mydict = {
  u'555555': {'name': "Steve"}, 
  u'666666': {'name': "Michael"},
  u'777777': {'name': "George"}
}
>>> [dict(mylist[0].items() + mydict.items())]
[{u'123456': {'name': 'Bill'}, u'555555': {'name': 'Steve'}, u'777777': {'name': 'George'}, u'666666': {'name': 'Michael'}, u'345678': {'name': 'Tom'}, u'234567': {'name': 'Dave'}}]

ただ行う方がきれいですが.update()

>>> mylist[0].update(mydict)
于 2013-05-27T10:30:29.430 に答える