J'ai un projet de conversion d'une base de données en une autre. L'une des colonnes de base de données d'origine définit la catégorie de la ligne. Cette colonne doit être mappée à une nouvelle catégorie dans la nouvelle base de données.Mappage plusieurs-à-un Python (création de classes d'équivalence)
Par exemple, supposons que les catégories originales sont: parrot, spam, cheese_shop, Cleese, Gilliam, Palin
Maintenant, c'est un peu bavard pour moi, et je veux avoir ces lignes classées comme sketch, actor
- C'est, définir tous les croquis et tous les acteurs comme deux classes d'équivalence.
>>> monty={'parrot':'sketch', 'spam':'sketch', 'cheese_shop':'sketch',
'Cleese':'actor', 'Gilliam':'actor', 'Palin':'actor'}
>>> monty
{'Gilliam': 'actor', 'Cleese': 'actor', 'parrot': 'sketch', 'spam': 'sketch',
'Palin': 'actor', 'cheese_shop': 'sketch'}
C'est tout à fait awkward- je préférerais avoir quelque chose comme:
monty={ ('parrot','spam','cheese_shop'): 'sketch',
('Cleese', 'Gilliam', 'Palin') : 'actors'}
Mais cela, bien sûr, définit le uplet entier comme une clé:
>>> monty['parrot']
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
monty['parrot']
KeyError: 'parrot'
Toute idée comment créer un dictionnaire de plusieurs-à-un élégant en Python?
Merci,
Adam
Découvrez cette élégante [réponse] (http://stackoverflow.com/a/11105962/355230) à une question similaire. – martineau