7-1 字典合并
分数 50
全屏浏览
切换布局
作者 陈春晖
单位 浙江大学
输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!
输入格式:
在第一行中输入第一个字典字符串;
在第二行中输入第二个字典字符串。
输出格式:
在一行中输出合并的字典,输出按字典序。
"1" 的 ASCII 码为 49,大于 1,排序时 1 在前,"1" 在后。其它的字符同理。
输入样例1:
在这里给出一组输入。例如:
{1:3,2:5}
{1:5,3:7}
输出样例1:
在这里给出相应的输出。例如:
{1:8,2:5,3:7}
输入样例2:
在这里给出一组输入。例如:
{"1":3,1:4}
{"a":5,"1":6}
输出样例2:
在这里给出相应的输出。例如:
{1:4,"1":9,"a":5}
答案:
l1=eval(input())
l2=eval(input())
ks1=l1.keys()
#先合并两个字典
for i in l2:
if i in ks1:
l1[i]=l1[i]+l2[i]
else:
l1[i]=l2[i]
#想办法按顺序输出
ks=list(l1.keys())
for i in range(len(ks)):
for j in range(i,len(ks)):
if type(ks[i])==int:
a=ks[i]
else:
a=ord(ks[i])
if type(ks[j])==int:
b=ks[j]
else:
b=ord(ks[j])
if a>b:
t=ks[i]
ks[i]=ks[j]
ks[j]=t
print('{',end='')
k=0
for i in ks:
if type(i)==int:
print(f'{i}:{l1[i]}',end='')
else:
print(f'"{i}":{l1[i]}',end='')
k+=1
if k==len(l1):
print('}')
else:
print(',',end='')
#杰小韦提示: 50和'1'比呢,谁先?