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

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日

悬赏问题

  • ¥20 三爪夹具,在重物的影响下,三爪受力怎么分析?能把三个爪当成螺栓吗?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目