Chapitre 5-11 Fusion de dictionnaires (40 points) (examinez le traitement du tri mixte des nombres et des chaînes)

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

 

Je suppose que tu aimes

Origine www.cnblogs.com/dreamcoding/p/12676478.html
conseillé
Classement