词典键值对经过修改,但是值还是没有被改变

【问题描述】马强东和刘云是两家电商的老板,最近他们准备合并他们的企业,干一番大事业。企业合并之后,他们的商品库存当然也要合在一起了。现在给你他们各自的商品清单,请你给出合并后的他们某项商品的数量。

【输入形式】第一行,一个正整数 n,表示马强东的商品种类数。

接下来 n行,每行第一项为某商品的名称,第二项为某商品的数量,用空格隔开。

接下来一行,一个正整数 m,表示刘云的商品种类数。

接下来 m行,每行第一项为某商品的名称,第二项为某商品的数量,用空格隔开。

最后一行,表示询问你的商品名称,保证该商品至少在一个人的库存中出现。

提示:看到用空格隔开你会想到列表的什么方法?python可以在一行语句里给多个变量同时赋值,按照你的想法试试看?

【输出形式】一行,一个正整数,表示询问你的商品数量。

【样例输入】

3
Computer 1
Apple 2
Chair 3
2
Chair 5
Pen 1
Chair

【样例输出】

8
我的代码

 # 电商合并
# 马
n = int(input(""))
dic_1 = {}
Dic = {}
list = []
for i in range(1, n+1):
    name_1, num_1 = input("").split(" ")
    num_1 = int(num_1)
    dic_1[name_1] = num_1
# 刘
m = int(input(""))
dic_2 = {}
for j in range(1, m + 1):
    name_2, num_2 = input("").split(" ")
    num_2 = int(num_2)
    dic_2[name_2] = num_2
    for key in dic_1:
        if name_2 == key:
            # 问题所在name_1
            Dic[name_1] = dic_1[name_1] + num_2
            break
        else:
            Dic[name_1] = num_1
            Dic[name_2] = num_2

chaxunwupin = input("")
print(Dic[chaxunwupin])
1

a 1
2
a 2
b 3
a
1
没有报错,就是计算结果出问题

我的解答思路和尝试过的方法

我就是采用两个词典将商品名和数量存储起来,再进行统计,最后再通过另建词典来存储所有的商品信息,然后查询

我想要达到的结果

结果理应是
a
3

n = int(input(">>>"))
dic = {}

for i in range(n):
    name, num = input(">>>").split(" ")
    dic[name] = int(num)
# 刘
m = int(input(">>>"))
for j in range(m):
    name, num = input(">>>").split(" ")
    dic[name] = dic.get(name, 0) + int(num)
 
chaxunwupin = input(">>>")
print(dic[chaxunwupin])

img


用一个Dic 即可, 题目的意思,就是用一个字典吧?


# 电商合并
# 马
n = int(input(""))
dic_1 = {}
Dic = {}
list = []
for i in range(1, n + 1):
    name_1, num_1 = input("").split(" ")
    num_1 = int(num_1)
    Dic[name_1] = num_1
# 刘
m = int(input(""))
dic_2 = {}
for j in range(1, m + 1):
    name_2, num_2 = input("").split(" ")
    num_2 = int(num_2)
    if name_2 in Dic:
        temp = Dic[name_2]
        temp = temp + num_2
        Dic[name_2] = temp


chaxunwupin = input("")
print(Dic[chaxunwupin])