如何将数组的每个连续元素添加到字典列表的每个元素中?

时间:2017-04-29 23:15:44

标签: python arrays list dictionary

我有一个字典列表:

mylist = [{1: 0.0, 2: 1.0, 3: 2.0},
          {1: 0.0, 2: 2.3, 3: 1.5},
          {1: 0.6, 2: 1.0, 3: 1.0}]

表格列表:

arr = [[1, 0, 0, 1],
       [1, 0, 2, 1],
       [1.0, 1.1, 3.5, 2.0]]

arr的长度与mylist的长度相同。 如何将arr的每个元素添加到mylist中的相应索引元素中,以便在插入后mylist具有以下形式:

mylist = [{1: 0.0, 2 : 1.0, 3: 2.0, 4: 1, 5: 0, 6: 0, 7: 1},
          {1:0.0, 2: 2.3, 3:1.5, 4: 1, 5: 0, 6: 2, 7: 1},
          {1: 0.6, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.1, 6: 3.5, 7: 2.0}]

1 个答案:

答案 0 :(得分:2)

enumerate arr的每个子列表,从4开始,每个字典update

您可以将相关字典与相关列表相关联,方法是将它们与zip压缩:

for d, extra in zip(mylist, arr):
    d.update(enumerate(extra, start=4))

enumerate通常从0开始计算:

>>> list(enumerate([1, 0, 0, 1]))
[(0, 1), (1, 0), (2, 0), (3, 1)]

您希望它从4计算:

>>> list(enumerate([1, 0, 0, 1], start=4))
[(4, 1), (5, 0), (6, 0), (7, 1)]
相关问题