あるデータベースを別のデータベースに変換するプロジェクトがあります。元のデータベース列の1つは、行のカテゴリーを定義します。この列は、新しいデータベースの新しいカテゴリにマップする必要があります。
たとえば、元のカテゴリが次のとおりであると仮定します。parrot, spam, cheese_shop, Cleese, Gilliam, Palin
これは私にとって少し冗長です。そして、これらの行を次のように分類したいと思いますsketch, actor
。つまり、すべてのスケッチとすべてのアクターを2つの同値類として定義します。
>>> 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でエレガントな多対1の辞書を作成する方法はありますか?