Dictionnaire merge. L'entrée utilise une chaîne pour représenter deux dictionnaires et le dictionnaire combiné est sorti. Les clés du dictionnaire sont représentées par une lettre ou un chiffre. Remarque: 1 et «1» sont des mots clés différents!
Format d'entrée:
Entrez la première chaîne de dictionnaire dans la première ligne Entrez la deuxième chaîne de dictionnaire dans la deuxième ligne
Format de sortie:
Le dictionnaire combiné est sorti sur une seule ligne et la sortie est dans l'ordre lexicographique. La valeur ASCII de "1" est 49, ce qui est supérieur à 1. Lors du tri, 1 est le premier, "1" est le suivant et les autres sont les mêmes.
Exemple d'entrée 1:
Voici un ensemble d'entrées. Par exemple:
{1:3,2:5}
{1:5,3:7}
Exemple de sortie 1:
La sortie correspondante est donnée ici. Par exemple:
{1:8,2:5,3:7}
Exemple d'entrée 2:
Voici un ensemble d'entrées. Par exemple:
{"1":3,1:4}
{"a":5,"1":6}
Exemple de sortie 2:
La sortie correspondante est donnée ici. Par exemple:
{1:4,"1":9,"a":5}
第一版(代码死板,不建议参考,见第二版)
# 字典 合并 # Auteur: cnRick # Time: 2020-4-10 dict1 = eval (input ()) dict2 = eval (input ()) keys1 = dict1.keys () keys2 = dict2.keys () minLenFlag = 1 if len (dict1)> len (dict2) else 0 if minLenFlag == 0: for i in keys1: if i in dict2: dict2 [i] = dict2 [i] + dict1 [i] else : dict2 [i] =dict1 [i] keys = list (dict2.keys ()) keys.sort (key = lambda x: ord (x) if type (x) == str else x) cnt = 0 print ( " { " , end = " " ) pour i dans les clés: si type (i) == int: print ( " {: d}: {: d} " .format (i, dict2 [i]), end = " " ) cnt + = 1 elif tapez (i) == str: print ( ' "{: s}": {: d} ' .format (i, dict2 [i]), end = "" ) cnt + = 1 si cnt! = len (dict2): print ( " , " , end = "" ) print ( " } " , end = "" ) else : for i in keys2: if i in dict1: dict1 [i] = dict1 [i] + dict2 [i] sinon : dict1 [i]= dict2 [i] keys = list (dict1.keys ()) keys.sort (key = lambda x: ord (x) if type (x) == str else x) cnt = 0 print ( " { " , end = "" ) pour i dans les clés: si type (i) == int: print ( " {: d}: {: d} " .format (i, dict1 [i]), end = "" ) cnt + = 1 eliftapez (i) == str: print ( ' "{: s}": {: d} ' .format (i, dict1 [i]), end = "" ) cnt + = 1 si cnt! = len (dict1): print ( " , " , end = "" ) print ( " } " , end = "" )
Deuxième édition
1 # 字典合并-简化版 2 # Auteur: cnRick 3 # Durée: 10/04/2020 4 Dict1 = eval (input ()) 5 DICT2 = eval (input ()) 6 pour clé dans dict2.keys (): 7 dict1 [key] = dict1.get (key, 0) + dict2 [key] 8 9 items_list = list (dict1.items ()) 10 items_list.sort (key = lambda item: ord (item [0]) if type ( item [0]) == str else item [0]) 11 print (str (dict (items_list)). replace ( " " , " " ) .replace ( " ' " , ' " ' ))
Idées de référence: https://blog.csdn.net/qq_43479432/article/details/105009411