在列表列表python中添加Key和Value



我的数据看起来像这个[[{'title': 'Line'}], [{'title': 'asd'}]]。我想为列表中的每个列表添加一个新的键和值。

我已经尝试过了,但我遇到了一个错误"list"对象不是映射。有什么建议吗?

data = [[{'title': 'Line'}], [{'title': 'asd'}]]
titleID = [{'id': 373}, {'id': 374}]
combine = [{**dict_1, **dict_2}
for dict_1, dict_2 in zip(char_id, data )]

我想要的输出是这样的:

[[{'id': 373, 'title': 'Line'}], [{'id': 374, 'title': 'asd'}]]

尝试此list comphrehension并打开

data = [[{'title': 'Line'}], [{'title': 'asd'}]]
titleID = [{'id': 373}, {'id': 374}]
[[{**i[0], **j}] for i,j in zip(data, titleID)]

输出

[[{'title': 'Line', 'id': 373}], [{'title': 'asd', 'id': 374}]]

您可以对一行使用列表理解:

[[{**dict_1[0], **dict_2}] for dict_1, dict_2 in zip(data, titleID)]
因为data的元素不是字典,而是列表。您可以直接解压缩嵌套的可迭代结构。有关详细信息,请参阅target_list。
data = [[{'title': 'Line'}], [{'title': 'asd'}]]
titleID = [{'id': 373}, {'id': 374}]
print([[{**dict1, **dict2}] for [dict1], dict2 in zip(data, titleID)])

将起作用。输出:

[[{'title': 'Line', 'id': 373}], [{'title': 'asd', 'id': 374}]]

如果您使用的是Python 3.9+,则可以使用|运算符来组合字典。

print([[dict1 | dict2] for [dict1], dict2 in zip(data, titleID)])

最新更新