小明ヾ(。`Д´。)ノ彡 2023-03-09 13:01 采纳率: 50%
浏览 47
已结题

python,字典嵌套循环遍历合并问题

python;字典嵌套:像循环字典内字典的值,并根据内部字典相同的key,把values相加;可能说的有点模糊 ,直接上代码和图:
这是代码:

all_guests = {'Alice': {'apples': 5, 'pretzels': 12},
              'Bob': {'applse': 2, 'han sandwiches': 3},
              'Carol': {'cups': 3, 'apples pie': 1}}


def total_brought(guests,item):
    num_brought = 0
    for k, v in guests.items():
        num_brought = num_brought + v.get(item,0)
    return num_brought
print('带的东西数量:')

for k, v in all_guests.items():
    # print(k)
    # print(v)
    for k1, v1 in v.items():
        print(k1 + '----:' + str(total_brought(all_guests, k1)))

图片;

img

我希望结果是apples可以相互合并:aplles的数量为7,而不是打印两个apples
谢谢大家!!

  • 写回答

5条回答 默认 最新

  • 7*24 工作者 2023-03-09 13:30
    关注
    
    new_dict = {}
    
    all_guests = {'Alice': {'apples': 5, 'pretzels': 12},
                  'Bob': {'applse': 2, 'han sandwiches': 3},
                  'Carol': {'cups': 3, 'apples pie': 1}}
    
    for item in all_guests.values():
        for k,v in item.items():
            #判断k在不在新的字典里面,如果在,就把现在的值和里面的值相加
            if k in new_dict.keys():
                v += new_dict.get(k)
            else:
                # 如果不在就直接赋值
                new_dict[k] = v
    
    
    print('带的东西数量:')
    for name,num in new_dict.items():
        print(f'{name}----:{num}')
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿