[英]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.