【输入形式】第一行,一个正整数 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])
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])
# 电商合并
# 马
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])