输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示(Python)

526 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!

在一行中输出合并的字典,输出按字典序。"1"的ASCII吗为49,大于1,排序时1在前,"1"在后,其它的也一样。

字典合并(难度:中等)

比如:

第一行输入:{"1":3,1:4}  

第二行输入:{"a":5,"1":6}  

输出:{1:4,"1":9,"a":5}

示例代码:

d1 = eval(input("请输入第一行:"))
d2 = eval(input("请输入第二行:"))
d3 = {}
c = 0
for i in d1:
    if i in d2:
        d2[i] += d1[i]
    else:
        d2[i] = d1[i]
for k in d2:
    if type(k) == type("a"):
        d3[ord(k)] = 0
    if type(k) == type(1):
        d3[k] = 1
print('{', end='')
for j in sorted(d3):
    c += 1
    if d3[j] == 0:
        print('"{}":{}'.format(chr(j), d2[chr(j)]), end='')
    if d3[j] == 1:
        print('{}:{}'.format(j, d2[j]), end='')
    if c < len(d3):
        print(',', end='')
print('}')