如何解决字典理解匹配值?
我有这本词典:
Dict1= {'0': [('L','Any'),('D','Any')],'1': [('D',('E','Any')]}
还有这个:
Dict2= {'0': ['0','1','2'],'1': ['0','2': ['0','3': ['0','2']}
我想将 dict 1 的键与 dict 2 的值相匹配,并得到这个预期的输出:
NewDict = {'0': [[('L',[('D','Any')]],'1': [[('L','2': [[('L','3': [[('L','Any')]]}
我试过这个代码:
NewDict= {k: [Dict1[e] for e in v] for k,v in Dict2.items()}
但我收到错误:KeyError: '2'
我知道它来自 dict2 中的值 2,该值没有任何相应的值,但我必须将其保留在这种形式中。有没有办法在不修改 dict2 的情况下解决这个问题?谢谢
解决方法
你对字典的理解几乎是正确的。您需要一个 if 条件来检查 Dict_1
中是否存在键。
Dict1= {'0': [('L','Any'),('D','Any')],'1': [('D',('E','Any')]}
Dict2= {'0': ['0','1','2'],'1': ['0','2': ['0','3': ['0','2']}
NewDict = {k:[Dict1[i] for i in v if i in Dict1] for k,v in Dict2.items()}
print(NewDict)
输出
{'0': [[('L',[('D','Any')]],'1': [[('L','2': [[('L','3': [[('L','Any')]]}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。