Maison > Article > développement back-end > Exemple de code pour utiliser Python pour fusionner les valeurs clés du dictionnaire et supprimer les éléments en double
Supposons qu'il existe un dictionnaire en python comme suit :
x={'a':'1,2,3', 'b':'2,3,4 '}
doit être fusionné dans :
x={'c':'1,2,3,4'}
Trois choses doivent être fait :
1. Convertir la chaîne en une liste de valeurs
2 Fusionner les deux listes et ajouter de nouvelles valeurs clés
3. Supprimer les éléments en double
Étape. 1 réussi La fonction eval() couramment utilisée peut le faire. La deuxième étape nécessite l'ajout d'une valeur clé et l'ajout d'éléments. La troisième étape utilise les propriétés des ensembles set pour obtenir l'effet. de déduplication. Cependant, au final, la collection d'ensembles doit être convertie en une liste list. Le code est le suivant :
x={'a':'1,2,3','b':'2,3,4'} x['c']=list(set(eval(x['a'])+eval(x['b']))) del x['a'] del x['b'] print x
Le résultat de sortie est :
{'c' : [1, 2, 3, 4]}
Mais dans le traitement par lots, l'une des valeurs clés peut n'avoir qu'un seul élément, ce qui amène le compilateur à la reconnaître comme un type int, ce qui entraîne une erreur.
x={'a':'1,2,3','b':'2'} x['c']=list(set(eval(x['a'])+eval(x['b']))) del x['a'] del x['b'] print x
Le résultat en cours d'exécution est :
Traceback (most recent call last): File "test.py", line 2, in <module> x['c']=list(set(eval(x['a'])+eval(x['b']))) TypeError: can only concatenate tuple (not "int") to tuple
La méthode de traitement consiste à copier artificiellement les éléments de 'b' afin que le compilateur ne le reconnaisse pas Pour int :
x={'a':'1,2,3','b':'2'} x['c']=list(set(eval(x['a'])+eval(x['b']+','+x['b']))) del x['a'] del x['b'] print x
Cela fonctionnera normalement. Ici, nous profitons de la fonctionnalité qui permet de supprimer les éléments en double et d'ajouter les mêmes éléments. Cependant, si les éléments de « b » sont vides, cette méthode échouera également. Ici, vous devez profiter du fait que le dernier élément de la liste Python peut être suivi d'une virgule, et vous pouvez le gérer comme suit.
x={'a':'1,2,3','b':''} x['c']=list(set(eval(x['a']+','+x['b']))) del x['a'] del x['b'] print x
Résultat d'exécution :
{'c' : [1, 2, 3]>
La dernière méthode peut également gérer les deux premières Condition .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!