Python 预先添加一个字典列表

Posted

技术标签:

【中文标题】Python 预先添加一个字典列表【英文标题】:Python Prepend a list of dicts 【发布时间】: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() 将完成这项工作。 【参考方案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()

也可以

【讨论】:

以上是关于Python 预先添加一个字典列表的主要内容,如果未能解决你的问题,请参考以下文章

反转附加列表或预先添加列表更便宜吗? - Python

在python中怎么把列表中的元素添加到字典中

在python中怎么把列表中的元素添加到字典中

python 从列表中取出一个字典元素

预先列出python

python学习小总结(列表元组字典集合字符串)