首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较python中的三层字典而只打印不匹配的值

如何比较python中的三层字典而只打印不匹配的值
EN

Stack Overflow用户
提问于 2022-08-02 19:08:35
回答 1查看 14关注 0票数 0

我有两条命

代码语言:javascript
复制
RT = {'Solution 1': {'Returned Solution': 'Flight', 'Airline Class': 'Economy', 'Price': 'CAD 255.96'}, 'Solution 2': {'Returned Solution': 'Hotel', 'Hotel Name': 'Rosewood Hotel Georgia', 'Hotel Price': 'CAD 999', 'Cancellation Type': 'GUAR'}}

AA = {'Solution 1': {'Returned Solution': 'Flight', 'Airline Class': 'Main Cabin', 'Price': 'CAD 255.96'}, 'Solution 2': {'Returned Solution': 'Hotel', 'Hotel Name': 'Rosewood Hotel Georgia', 'Hotel Price': '(CAD 850 + fees)'}}

我正在尝试比较这个嵌套的Dict和打印值是不一样的。

预期产出如下:

代码语言:javascript
复制
Airline Class : 'Economy' 'Main Cabin'
Hotel Price : 'CAD 999' '(CAD 850 + fees)'
Cancellation Type: 'GUAR' 'N\A'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-02 19:22:00

代码语言:javascript
复制
RT = {'Solution 1': {'Returned Solution': 'Flight', 'Airline Class': 'Economy', 'Price': 'CAD 255.96'}, 'Solution 2': {'Returned Solution': 'Hotel', 'Hotel Name': 'Rosewood Hotel Georgia', 'Hotel Price': 'CAD 999', 'Cancellation Type': 'GUAR'}}

AA = {'Solution 1': {'Returned Solution': 'Flight', 'Airline Class': 'Main Cabin', 'Price': 'CAD 255.96'}, 'Solution 2': {'Returned Solution': 'Hotel', 'Hotel Name': 'Rosewood Hotel Georgia', 'Hotel Price': '(CAD 850 + fees)'}}
ans = {}
for k,v in RT.items():
    cur = []
    for k_, v_ in v.items():
        if k_ in AA[k]:
            if (AA[k][k_]) != v_:
                cur.append(AA[k][k_])
                cur.append(v_)
                ans[k_] = cur
                cur = []
        else:
            cur.append(v_)
            cur.append("NA")
            ans[k_] = cur
            cur =[]
    
for k,v in ans.items():
    print(k, v)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73212579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档