


Le livre de recettes Python (structures de données et algorithmes) combine plusieurs mappages en un seul mappage
Cet article présente principalement la méthode de fusion de plusieurs mappages en un seul mappage dans le livre de recettes Python (structure des données et algorithme). Il analyse les compétences de mise en œuvre liées aux opérations de fusion de mappages de dictionnaires Python sous forme d'exemples. à cela
L'exemple de cet article décrit la méthode Python permettant de fusionner plusieurs mappages en un seul mappage. Partagez-le avec tout le monde pour votre référence, comme suit :
Question : Fusionnez logiquement plusieurs dictionnaires ou mappages en une seule structure de mappage pour effectuer certaines opérations, par exemple rechercher une valeur ou vérifier si une clé existe
Solution : Utilisez la classe collections
dans le module ChainMap
ChainMap
pour accepter plusieurs mappages puis les faire apparaître logiquement comme une structure de cartographie unique. Ces mappages ne sont pas littéralement fusionnés. Au lieu de cela, ChainMap
maintient simplement une liste enregistrant les relations de mappage sous-jacentes, puis redéfinit les opérations courantes du dictionnaire pour analyser cette liste.
# example.py # # Example of combining dicts into a chainmap a = {'x': 1, 'z': 3 } b = {'y': 2, 'z': 4 } # (a) Simple example of combining from collections import ChainMap c = ChainMap(a,b) #如果有重复的键,那么会采用第一个映射中所对应的值。 print(c['x']) # Outputs 1 (from a) print(c['y']) # Outputs 2 (from b) print(c['z']) # Outputs 3 (from a) # Output some common values print('len(c):', len(c)) print('c.keys():', list(c.keys())) print('c.values():', list(c.values())) # Modify some values c['z'] = 10 c['w'] = 40 print("a:", a) del c['x'] print("a:", a) # Example of stacking mappings (like scopes) values = ChainMap() values['x'] = 1 # Add a new mapping values = values.new_child() values['x'] = 2 # Add a new mapping values = values.new_child() values['x'] = 3 print(values) print(values['x']) # Discard last mapping values = values.parents print(values) print(values['x']) # Discard last mapping values = values.parents print(values) print(values['x'])
>>> ================================ RESTART ================================ >>> 1 2 3 len(c): 3 c.keys(): ['y', 'x', 'z'] c.values(): [2, 1, 3] a: {'x': 1, 'z': 10, 'w': 40} a: {'z': 10, 'w': 40} ChainMap({'x': 3}, {'x': 2}, {'x': 1}) 3 ChainMap({'x': 2}, {'x': 1}) 2 ChainMap({'x': 1}) 1 >>>
De plus, ChainMap fonctionne sur le dictionnaire original, ce qui peut éviter certains choses désagréables. Un comportement insatisfaisant, par exemple, des modifications apportées à l'un des dictionnaires originaux ne peuvent pas être reflétées dans le dictionnaire fusionné.
>>> a={'x':1,'z':3} >>> b={'y':2,'z':4} >>> merged=ChainMap(a,b) >>> merged ChainMap({'x': 1, 'z': 3}, {'y': 2, 'z': 4}) >>> merged['x'] 1 >>> a['x']=55 >>> merged['x'] 55 >>> merged ChainMap({'x': 55, 'z': 3}, {'y': 2, 'z': 4}) >>>
(le code est extrait de "Python Cookbook")
Recommandations associées :
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!

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)

Sujets chauds

De nombreux développeurs de sites Web sont confrontés au problème de l'intégration de Node.js ou des services Python sous l'architecture de lampe: la lampe existante (Linux Apache MySQL PHP) a besoin d'un site Web ...

Lorsque vous utilisez Scapy Crawler, la raison pour laquelle les fichiers de stockage persistants ne peuvent pas être écrits? Discussion Lorsque vous apprenez à utiliser Scapy Crawler pour les robots de données, vous rencontrez souvent un ...

Python Process Pool gère les demandes TCP simultanées qui font coincé le client. Lorsque vous utilisez Python pour la programmation réseau, il est crucial de gérer efficacement les demandes TCP simultanées. ...

Explorez profondément la méthode de visualisation de Python Functools.Partial Objet dans Functools.Partial en utilisant Python ...

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

Choix de la bibliothèque de développement d'applications de bureau multiplateforme Python De nombreux développeurs Python souhaitent développer des applications de bureau pouvant s'exécuter sur Windows et Linux Systems ...

Précision avec Python: Source de sablier Dessin graphique et vérification d'entrée Cet article résoudra le problème de définition variable rencontré par un novice Python dans le programme de dessin graphique de sablier. Code...

Conversion et statistiques de données: traitement efficace des grands ensembles de données Cet article introduira en détail comment convertir une liste de données contenant des informations sur le produit en une autre contenant ...
