我有一个将一个数据库转换为另一个数据库的项目。原始数据库列之一定义行的类别。此列应映射到新数据库中的新类别。
例如,假设原始类别是:parrot, spam, cheese_shop, Cleese, Gilliam, Palin
现在这对我来说有点冗长,我希望将这些行分类为sketch, actor
- 也就是说,将所有草图和所有演员定义为两个等价类。
>>> 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'}
这很尴尬 - 我更喜欢这样的东西:
monty={ ('parrot','spam','cheese_shop'): 'sketch',
('Cleese', 'Gilliam', 'Palin') : 'actors'}
但这当然会将整个元组设置为键:
>>> monty['parrot']
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
monty['parrot']
KeyError: 'parrot'
任何想法如何在 Python 中创建一个优雅的多对一字典?