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 预先添加一个字典列表的主要内容,如果未能解决你的问题,请参考以下文章