PTA20、字典合并 (10 分)

20、字典合并 (10 )

字典合并。输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示。注意: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}

        

dic1=eval(input())

dic2=eval(input())

dic3={**dic1,**dic2}

for k1 in dic1:

    b= k1 in dic2.keys()

    if b:

        dic3[k1]=dic1.get(k1)+dic2.get(k1)

        break

c1,c2 = {},{}

for key in dic3.keys():

    if type(key) == str:

        c1[key] = dic3.get(key)

    elif type(key) == int:

        c2[key] = dic3.get(key)

ans1=dict(sorted(c1.items()))

ans2=dict(sorted(c2.items()))

num,num1 = 0,0

print("{", end='')

if len(ans2) != 0:

    for k, v in ans2.items():

        if len(ans1) == 0 and num1 == len(ans2) - 1:

            print("{}:{}".format(k, v), end='')

        else:

            print("{}:{},".format(k, v), end='')

        num1 = num1 + 1

if len(ans1) != 0:

    for k, v in ans1.items():

        if num == len(ans1) - 1:

            print(("\""+"%c"+"\""+":"+"%d") % (k, v), end='')

        else:

            print(("\"" + "%c" + "\"" + ":" + "%d,") % (k, v), end='')

        num = num + 1

print("}", end='')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章