编程题:字典合并
输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!
### 输入格式:
在第一行中输入第一个字典字符串;
在第二行中输入第二个字典字符串。
### 输出格式:
在一行中输出合并的字典,输出按字典序。
"1" 的 ASCII 码为 49,大于 1,排序时 1 在前,"1" 在后。其它的字符同理。
### 输入样例1:
在这里给出一组输入。例如:
in
{1:3,2:5}
{1:5,3:7}
### 输出样例1:
在这里给出相应的输出。例如:
out
{1:8,2:5,3:7}
### 输入样例2:
在这里给出一组输入。例如:
in
{"1":3,1:4}
{"a":5,"1":6}
### 输出样例2:
在这里给出相应的输出。例如:
out
{1:4,"1":9,"a":5}
**鸣谢用户 卧龙几两钱 补充数据!**
答案:若无答案欢迎评论
#合并字典
dic1=eval(input())
dic2=eval(input())
dic3={}
keys=set(dic1.keys())|set(dic2.keys())
for key in keys:
value=dic1.get(key,0)+dic2.get(key,0)
if value!=0:
dic3[key]=value
#排序
lst=[(ord(k) if k not in range(0,10) else k,v) for k,v in dic3.items()]
lst.sort()
#输出
lst1=[]
for t in lst:
if 0<=t[0]<=9:
lst1.append("{}:{}".format(t[0],t[1]))
else:
lst1.append('''"{}":{}'''.format(chr(t[0]),t[1]))
print("{"+",".join(lst1)+"}")
#用lambda表达式
dict1=eval(input().strip())
dict2=eval(input().strip())
for i in dict2:
if i in dict1:
dict1[i]+=dict2[i]
else:
dict1[i]=dict2[i]
print("{",end='')
l=[]
for key,value in sorted(dict1.items(),key=lambda x:ord(x[0]) \
if type(x[0])==str else x[0]):
if type(key) ==str:
l.append('''"'''+str(key)+'''":'''+str(value))
else:
l.append(str(key)+":"+str(value))
print(",".join(l),end="")
print("}")
### 输入格式:
在第一行中输入第一个字典字符串;
在第二行中输入第二个字典字符串。
### 输出格式:
在一行中输出合并的字典,输出按字典序。
"1" 的 ASCII 码为 49,大于 1,排序时 1 在前,"1" 在后。其它的字符同理。
### 输入样例1:
在这里给出一组输入。例如:
in
{1:3,2:5}
{1:5,3:7}
### 输出样例1:
在这里给出相应的输出。例如:
out
{1:8,2:5,3:7}
### 输入样例2:
在这里给出一组输入。例如:
in
{"1":3,1:4}
{"a":5,"1":6}
### 输出样例2:
在这里给出相应的输出。例如:
out
{1:4,"1":9,"a":5}
**鸣谢用户 卧龙几两钱 补充数据!**
答案:若无答案欢迎评论
#合并字典
dic1=eval(input())
dic2=eval(input())
dic3={}
keys=set(dic1.keys())|set(dic2.keys())
for key in keys:
value=dic1.get(key,0)+dic2.get(key,0)
if value!=0:
dic3[key]=value
#排序
lst=[(ord(k) if k not in range(0,10) else k,v) for k,v in dic3.items()]
lst.sort()
#输出
lst1=[]
for t in lst:
if 0<=t[0]<=9:
lst1.append("{}:{}".format(t[0],t[1]))
else:
lst1.append('''"{}":{}'''.format(chr(t[0]),t[1]))
print("{"+",".join(lst1)+"}")
#用lambda表达式
dict1=eval(input().strip())
dict2=eval(input().strip())
for i in dict2:
if i in dict1:
dict1[i]+=dict2[i]
else:
dict1[i]=dict2[i]
print("{",end='')
l=[]
for key,value in sorted(dict1.items(),key=lambda x:ord(x[0]) \
if type(x[0])==str else x[0]):
if type(key) ==str:
l.append('''"'''+str(key)+'''":'''+str(value))
else:
l.append(str(key)+":"+str(value))
print(",".join(l),end="")
print("}")