python-来自多个列表的嵌套字典
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-来自多个列表的嵌套字典,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1648字,纯文字阅读大概需要3分钟。
内容图文
![python-来自多个列表的嵌套字典](/upload/InfoBanner/zyjiaocheng/687/0ab6038e47554d289021fb96780bfe69.jpg)
我正在尝试彼此分配两个嵌套字典的值.例如,如果我们假设父母和孩子,然后假设孙子如何分配给相应的孩子. (父母是关键,价值是孩子,然后孩子是关键,价值是孙子)
我试图从sqlite数据库中导入大型数据集,然后根据需要的父子关系将它们相应地分类为字典.这是为了创建嵌套字典的字典来填充qmenu,其中输入必须保持字典格式.我不熟悉如何通过映射或递归提高效率.
我当前的代码以我想要的方式工作,但是有什么方法可以使其更高效或递归?
# DATA
A = ['item0','item1']
B = [['item00','item01','item02'],['item11','item12']]
C = [['item000'],['item010','item011'],['item020'],['item110','item111'],['item120']]
# FLATTEN B
B_ls = []
for i in range(len(C)):
B_ls = [item for sublist in B for item in sublist]
# INITAIATE DICTIONARIES
master = {}
parent = {}
child = {}
# INITIATE CELL CONTENT COUNTER
skipper = 0
# CREATE NESTED DICITIONARIES
for j in range(len(A)):
child = {}
for i in range(len(B)):
tempD1 = {B_ls[i+skipper]:C[i+skipper]}
child.update(tempD1)
parent = {A[j]:child}
master.update(parent)
skipper += len(B[j])
# CHECK RESULTS
print(master)
解决方法:
这是使用嵌套字典理解的一种方法-
这个想法是通过在外部循环中同时压缩A和B来构建父子结构,因为B中的子列表或子项与父键一样多.
现在,这些子级中的每个子级都应该包含C中包含的子列表作为值,因此,每次我们要在内部字典理解中设置新的孙代时,我们都可以创建一个iterator并检索其下一项:
A = ['item0','item1']
B = [['item00','item01','item02'],['item11','item12']]
C = iter([['item000'],['item010','item011'],['item020'],['item110','item111'],['item120']])
d = {p:{gs:next(C) for gs in s} for p,s in zip(A,B)}
{'item0': {'item00': ['item000'],
'item01': ['item010', 'item011'],
'item02': ['item020']},
'item1': {'item11': ['item110', 'item111'],
'item12': ['item120']}}
内容总结
以上是互联网集市为您收集整理的python-来自多个列表的嵌套字典全部内容,希望文章能够帮你解决python-来自多个列表的嵌套字典所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。