Python - 从嵌套列表和字典创建字典

Python - Create Dictionary From Nested List and Dictionaries

提问人:n_cen 提问时间:5/26/2023 最后编辑:n_cen 更新时间:5/26/2023 访问量:40

问:

我正在尝试从列表中的字典中的值创建字典。请参阅以下示例:

dict1={'x':1,'y':7}
dict2={'x':2,'y':8}
dict3={'x':3,'y':9}

list1=[dict1,dict2,dict3]
list2=[dict3]
list3=[dict2,dict3]

A=[list1,list2,list3]

如何循环访问列表和字典以为 {x:y} 创建新字典?

newdict={A[0][0]['x']:A[0][0]['y'] ,..., A[2][1]['x']:A[2][1]['y']}

我试过了:

newdict={}
for i in A:
   newdict[i]={A[i][j]['x']:A[i][j]['y'] for j in A[i]}

但是我收到一个错误“列表索引必须是整数或切片,而不是列表”

Python 嵌套列表

评论

0赞 itprorh66 5/26/2023
如果不查看您的任何数据或您编写的任何导致问题的解决方案,就很难回答您的问题。请编辑您的问题以显示一个最小的可重现集,包括样本输入、预期输出、实际输出,以及仅重现问题所需的相关代码。请参阅最小可重复示例,详细了解如何最好地帮助我们为您提供帮助。
0赞 Abion47 5/26/2023
所以,总结一下...... 是一个列表列表,每个列表都是一个字典列表,每个字典都有键 、 和 ?是吗?新创建的字典有条目,其中键是 的值,值是 的值?Axyzxy
0赞 JRiggles 5/26/2023
是否对“z”的值进行了任何操作?
0赞 n_cen 5/26/2023
@itprorh66对此感到抱歉 - 编辑以包含可以复制的代码。不能包含太多数据,因为它是敏感信息

答:

0赞 Kache 5/26/2023 #1

像这样的东西:

foo_dict = {'x': 1, 'y': 2, 'z': 3}
inner_list = [foo_dict]
outer_list = [inner_list]

newdict = {d['x']: d['y'] for inner in outer_list for d in inner}
# => {1: 2}

使用您最近添加的示例:

all_xy = {d['x']: d['y'] for inner in A for d in inner}
# => {1: 7, 2: 8, 3: 9}