输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。
注意: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
结尾无空行
思路:
这个题是最难的题目了,这个题在看起来十分简单,但是问题在于输出上。我们来分析一下:
可以看出题目说用ASCII 码来排序,所以我们可以知道,我们需要对这些进行转换:
ord() #将字符转换成ASCII 码
chr() #将ASCII 码转换成字符
我们知道这两个了之后,我们只需要吧字符型选出来,然后对字符型放到一个筛选列表中,然后将字典的key都用整数来排序,这样我们就能成功解决问题了
思路做法:
list4 = []
for i in list2:
if isinstance(i, str):
list3.append(i)
list4.append(ord(i))
else:
list4.append(i)
答案:
# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/11/1 20:07
dict1 = dict(eval(input()))
dict2 = dict(eval(input()))
list1 = []
for i in dict1:
if i in dict2:
dict2[i] += dict1[i]
else:
dict2[i] = dict1[i]
for i in dict2:
list1.append(i)
list2 = list(set(list1))
list3 = []
list4 = []
for i in list2:
if isinstance(i, str):
list3.append(i)
list4.append(ord(i))
else:
list4.append(i)
dict3 = {}
for i in dict2:
if isinstance(i, str):
dict3[ord(i)] = dict2[i]
else:
dict3[i] = dict2[i]
for i in sorted(list4):
if chr(i) not in list3:
print("%s:%s" % (i, dict3[i]))
else:
print("'%s':%s" % (chr(i), dict3[i]))