【问题标题】:Python list append only dictionaryPython列表仅附加字典
【发布时间】:2021-11-26 11:20:26
【问题描述】:

我有 2 个字典,其中包含如下数据:


item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}

item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}

我只想将item1['data']item2['data'] 附加到单个列表中,我该如何附加这个?我的预期清单是

[{'a': 11, 'b': 22}, {'c': 33, 'd': 44}, {'e': 55, 'f': 66}, {'g': 77, 'h': 88}]

【问题讨论】:

  • item1['data'] + item2['data']?

标签: python list dictionary append


【解决方案1】:

你可以解压列表。

>>> item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}
>>> item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}
>>>
>>> [*item1['data'], *item2['data']]
[{'a': 11, 'b': 22}, {'c': 33, 'd': 44}, {'e': 55, 'f': 66}, {'g': 77, 'h': 88}]

或者,您可以使用 list.extend 方法。

>>> result = item1['data'].copy()
>>> result
[{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]
>>> result.extend(item2['data'])
>>> result
[{'a': 11, 'b': 22}, {'c': 33, 'd': 44}, {'e': 55, 'f': 66}, {'g': 77, 'h': 88}]

【讨论】:

  • 你的第二种方法也改变了item1,因为你做了result = item1['data']
  • 谢谢。list.extend方法很有帮助。
【解决方案2】:

多种方式中的两种:

item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}

item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}
outlist = item1['data']+item2['data']
print (outlist)

item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}

item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}
outlist = []
for d in item1['data']:
    outlist.append(d)
for d in item2['data']:
    outlist.append(d)
print (outlist)

输出:

[{'a': 11, 'b': 22}, {'c': 33, 'd': 44}, {'e': 55, 'f': 66}, {'g': 77, 'h': 88}]

【讨论】:

    【解决方案3】:

    你可以试试这个:

    item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}
    
    item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}
    
    final = item1.get('data', '') + item2.get('data', '')
    
    print(final)
    

    输出:

    [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}, {'e': 55, 'f': 66}, {'g': 77, 'h': 88}]
    

    【讨论】:

      【解决方案4】:

      这也可以通过使用 for 循环来完成。

      item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}
      item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}
      for item in item2['data']:
          item1['data'].append(item)
      print(item1['data'])
      

      【讨论】:

        【解决方案5】:

        试试这个脚本:

        a=[]
        item1 = {'data': [{'a': 11, 'b': 22}, {'c': 33, 'd': 44}]}
        item2 = {'data': [{'e': 55, 'f': 66}, {'g': 77, 'h': 88}]}
        
        for i in range(0,2):
        
            var1=item1['data'][i]
            a.append(var1)
        
        for i in range(0, 2):
            var1 = item2['data'][i]
            a.append(var1)
        
        print(a)
        

        【讨论】:

          猜你喜欢
          • 2020-10-14
          • 1970-01-01
          • 2023-02-02
          • 1970-01-01
          • 1970-01-01
          • 2016-01-16
          • 2019-11-07
          • 2020-12-06
          • 1970-01-01
          相关资源
          最近更新 更多