Maison développement back-end Tutoriel Python Ajout et comparaison XOR des valeurs fusionnées des dictionnaires en Python

Ajout et comparaison XOR des valeurs fusionnées des dictionnaires en Python

Mar 03, 2017 pm 03:18 PM

Ajouter des valeurs fusionnées dans un dictionnaire

Lors du résumé des données de jeu, certaines données sont stockées chaque jour dans des dictionnaires. Lorsque je souhaite résumer plusieurs jours, vous devez fusionner les dictionnaires.
Si les clés sont les mêmes, leurs valeurs sont ajoutées.
Vous ne pouvez pas utiliser la méthode de mise à jour, car si vous utilisez la méthode de mise à jour, les valeurs de la même clé seront écrasées au lieu d'être ajoutées.
Mille mots valent un mètre.

def union_dict(*objs): 
  _keys = set(sum([obj.keys() for obj in objs],[])) 
  _total = {} 
  for _key in _keys: 
    _total[_key] = sum([obj.get(_key,0) for obj in objs]) 
  return _total 
 
obj1 = {'a':1,'b':2,'c':3} 
obj2 = {'a':1,'b':3,'d':4} 
print union_dict(obj1,obj2)
Copier après la connexion


Sortie

{'a': 2, 'c': 3, 'b': 5, 'd': 4}
Copier après la connexion

sum([obj.keys() for obj in objs],[]) n'est peut-être pas facile à comprendre.
En fait, la fonction sum() a également des "paramètres peu connus", c'est-à-dire le deuxième paramètre, le paramètre start, qui est par défaut 0.
Et cela peut non seulement être de type int, mais aussi d'autres éléments prenant en charge les opérateurs, tels que [].
Grâce à cela, le tableau à deux niveaux peut être aplati en un seul niveau.
Par exemple

>>sum([[1,2,3],[4,5]],[])
[1,2,3,4,5]
Copier après la connexion

Dictionnaire diff("XOR")
Dans le jeu, je souhaitez surveiller et enregistrer les modifications apportées au sac à dos dans le système d'articles. (Le résultat de "XOR" est que les mêmes sont éliminés, laissant les différents, c'est-à-dire modifiés)
Supposons que la structure de stockage du sac à dos soit comme ceci.
est un dictionnaire, {identifiant de l'article : quantité}.
Lors de l'initialisation de la classe backpack, copiez et enregistrez les informations sur l'élément du sac à dos dans une variable oldbag après avoir effectué certaines opérations sur l'élément (telles que l'utilisation d'objets, la réception de récompenses d'objet, etc.), lorsque vous appelez la méthode save() pour enregistrer dans. redis, le nouveau Comparez la différence entre le dictionnaire bag et le dictionnaire oldbag pour obtenir les modifications.
Mille mots valent un mètre.

def symmetric_difference(_oldobj,_newobj): 
  _oldkeys = _oldobj.keys() 
  _newkeys = _newobj.keys() 
  _diff = {} 
  for _key in set(_oldkeys + _newkeys): 
    _val = _newobj.get(_key,0) - _oldobj.get(_key,0) 
    if _val: 
      _diff[_key] = _val  
  return _diff  
 
oldobj = {'a':1,'b':2,'c':3} 
newobj = {'a':1,'b':3,'d':4} 
print symmetric_difference(oldobj,newobj)
Copier après la connexion

Sortie

{'b': 1, 'd': 4,'c': -3}
Copier après la connexion

représente Le joueur a gagné 1 objet « b », 4 objets « d » et a perdu 3 objets « c ».

Pour plus d'articles liés à l'ajout et à la comparaison XOR de valeurs fusionnées dans les dictionnaires en Python, veuillez faire attention au site Web PHP chinois !

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Quelles sont les bibliothèques Python populaires et leurs utilisations? Quelles sont les bibliothèques Python populaires et leurs utilisations? Mar 21, 2025 pm 06:46 PM

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Que sont les expressions régulières? Que sont les expressions régulières? Mar 20, 2025 pm 06:25 PM

Les expressions régulières sont des outils puissants pour la correspondance des motifs et la manipulation du texte dans la programmation, améliorant l'efficacité du traitement de texte sur diverses applications.

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Expliquez le but des environnements virtuels dans Python. Expliquez le but des environnements virtuels dans Python. Mar 19, 2025 pm 02:27 PM

L'article traite du rôle des environnements virtuels dans Python, en se concentrant sur la gestion des dépendances du projet et l'évitement des conflits. Il détaille leur création, leur activation et leurs avantages pour améliorer la gestion de projet et réduire les problèmes de dépendance.

See all articles