Maison > développement back-end > Tutoriel Python > Exemple de code pour utiliser Python pour fusionner les valeurs clés du dictionnaire et supprimer les éléments en double

Exemple de code pour utiliser Python pour fusionner les valeurs clés du dictionnaire et supprimer les éléments en double

高洛峰
Libérer: 2017-03-24 17:32:37
original
1882 Les gens l'ont consulté

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
Copier après la connexion


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
Copier après la connexion


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
Copier après la connexion


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
Copier après la connexion


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
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal