


Ajout et comparaison XOR des valeurs fusionnées des dictionnaires en Python
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)
Sortie
{'a': 2, 'c': 3, 'b': 5, 'd': 4}
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]
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)
Sortie
{'b': 1, 'd': 4,'c': -3}
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 !

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 ...

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 ...

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? 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 ...

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.

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 ...

Fastapi ...

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.
