【问题标题】:Python Prepend a list of dictsPython 预先添加一个字典列表
【发布时间】:2019-01-04 21:46:20
【问题描述】:

我有这个清单:

[('1', '1')]

我想在列表前面加上一个 dict 对象,看起来像:

[('All', 'All'), ('1', '1')]

我正在尝试:

myList[:0] = dict({'All': 'All'})

但这给了我:

['All', ('1', '1')]

我做错了什么?

【问题讨论】:

  • 您的预期输出不包括字典......您想要将您的字典的 (key, value) 元组插入到列表中?
  • dict({'All': 'All'}) 是多余的,无论如何。
  • myList[:0] = dict({'All': 'All'}).items() 将完成这项工作。

标签: python


【解决方案1】:

您可以参考下面的函数将任何字典作为列表项附加到已经存在的列表中。你只需要发送一个新的字典,你想将它附加到你已经存在的旧列表中。

    def append_dict_to_list(new_dict,old_list):
        list_to_append = list(new_dict.items())
        new_list = list_to_append + old_list 
        return new_list 

    print (append_dict_to_list({'All':'All'},[('1', '1')]))

P.S:如果你想在现有列表之后追加新的字典,只需将代码中的顺序更改为 new_list = old_list + list_to_append

【讨论】:

    【解决方案2】:

    对于[('All', 'All'), ('1', '1')] 之类的答案,请执行以下操作:

    myList = [('1', '1')]
    myList = [('All', 'All')] + myList
    

    更多信息,请参考this

    【讨论】:

      【解决方案3】:

      你也可以看看下面。

      >>> myList = [('1', '1')]
      >>>
      >>> myList[:0] = dict({'All': 'All'}).items()
      >>> myList
      [('All', 'All'), ('1', '1')]
      >>>
      

      【讨论】:

        【解决方案4】:

        使用字典中的items() 获取键、值并将它们添加到列表中:

        lst = [('1', '1')]
        lst = list({'All': 'All'}.items()) + lst
        
        print(lst)
        # [('All', 'All'), ('1', '1')]
        

        注意{'All': 'All'} 本身就是一个字典,所以你的代码中的dict({'All': 'All'}) 是不必要的。

        【讨论】:

          【解决方案5】:

          当您将dict 用作可迭代对象时,您仅迭代其键。如果您想迭代其键/值对,则必须使用 dict.items 视图。

          l = [('1', '1')]
          d = dict({'All': 'All'})
          print([*d.items(), *l])
          # [('All', 'All'), ('1', '1')]
          

          * 语法是 available in Python 3.5 and later

          l[:0] = d.items()
          

          也可以

          【讨论】:

            猜你喜欢
            • 2012-05-09
            • 1970-01-01
            • 2014-03-07
            • 1970-01-01
            • 2019-02-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多