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='')

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