字典的合并,pta部分正确

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}

a=eval(input())
b=eval(input())
list1=[]
list2=[]
dic={}
for i in a:
    dic[i]=a.get(i)
    if type(i)==type(1):
        list1.append(i)
    else:
        list2.append(i)
for i in b:
    dic[i]=dic.get(i,0)+b.get(i,0)
    if type(i)==type(1):
        list1.append(i)
    else:
        list2.append(i)
list1.sort()
list2.sort()
listz=list1+list2
print("{",end="")
c=0
d=len(dic)
for i in listz:
    if i in dic:
        c=c+1
        if type(i)==type(1):
            print(f"{i}:{dic[i]}",end="")
        else:
            print(f'"{i}":{dic[i]}',end="")
        del dic[i]
        if c!=d:
            print(",",end="")
print("}")

部分正确,怎么改,一共50分,得了40,最后一个测试的没对

输出按字典序
也就是说,你搞两个list排序完全叫画蛇添足
直接循环字典2,判断如果键值在字典1里存在,相加,如果不存在,add