代码之家  ›  专栏  ›  技术社区  ›  AlxVallejo

Python预先准备了一个dict列表

  •  1
  • AlxVallejo  · 技术社区  · 6 年前

    我有这个清单:

    [('1', '1')]

    我想在列表前面加上一个dict对象,如下所示:

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

    我在努力:

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

    但这给了我:

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

    我做错什么了?

    5 回复  |  直到 6 年前
        1
  •  1
  •   Austin    6 年前

    使用 items() 获取键、值并将其前置到列表:

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

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

        2
  •  1
  •   Patrick Haugh    6 年前

    当你使用 dict 在as a iterable中,只对其键进行迭代。如果您想遍历它的键/值对,则必须使用 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()
    

    同样有效

        3
  •  0
  •   hygull    6 年前

    你也可以看看下面。

    >>> myList = [('1', '1')]
    >>>
    >>> myList[:0] = dict({'All': 'All'}).items()
    >>> myList
    [('All', 'All'), ('1', '1')]
    >>>
    
        4
  •  0
  •   Vinayak Bagaria    6 年前

    像这样的回答 [('All', 'All'), ('1', '1')] ,执行:

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

    更多信息,请参考 this .

        5
  •  0
  •   Shagun Pruthi    6 年前

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

        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:如果您希望在现有列表之后添加新的DICT,只需将代码中的序列作为NexyList= OLDYList+ListSoToAppEnter更改即可。