簡體   English   中英

Python附加字典列表

[英]Python Prepend a list of dicts

我有這個清單:

[('1', '1')]

我想在列表前添加一個dict對象,看起來像:

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

我正在努力:

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

但這給了我:

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

我究竟做錯了什么?

當您將dict用作可迭代對象時,您僅在其鍵上進行迭代。 相反,如果要遍歷其鍵/值對,則必須使用dict.items視圖。

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

*語法在Python 3.5及更高版本中可用

l[:0] = d.items()

也可以

使用字典的items()獲取鍵,值並將它們放在列表的前面:

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

print(lst)
# [('All', 'All'), ('1', '1')]

注意{'All': 'All'}本身就是字典,因此代碼中的dict({'All': 'All'})是不必要的。

您也可以在下面查看。

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

對於[('All', 'All'), ('1', '1')]類的答案,請執行以下操作:

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

有關更多信息,請參考

您可以參考以下函數,將任何字典作為列表項追加到已經存在的列表中。 您只需要發送一個新的字典,然后將其附加到已經存在的舊列表中即可。

    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')]))

PS:如果要在現有列表后追加新字典,只需將代碼中的順序更改為new_list = old_list + list_to_append

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM