私はキーが正規表現です辞書作成したい:正規表現を辞書のキーとして使用できますか?
d['apple']
私はリンゴ'apple'
があるキーと照合することにしたい:私は辞書に見たときに、その後
d = {'a.*': some_value1, 'b.*': some_value2}
を正規表現。 key/regular-expressionとの完全一致がある場合、対応する値が返されます。
たとえば、'apple'
は、正規表現'a.*'
と完全に一致します。したがって、some_value1
が返されます。
もちろん、これはすべて正規表現キーが競合しないことを前提としています(つまり、2つのキーが同じ文字列と完全に一致してはならない)。キーを作成するときに、この要件を手動で処理できるとします。
これはPythonで可能ですか?もしそうなら、それは非常にエレガントで強力な構造物でしょう!
「もしそうなら、それは非常にエレガントで強力な構造です!」 - 同じ文字列にマッチする正規表現を無制限に書くことができるので、そうではありません。あなたは正しい質問をしていません。あなたが解決しようとしている問題を説明してください。 – Tomalak
互換性のないものが2つ必要です。プログラムは、正規表現と文字列の両方を少なくとも見ていなくても、正規表現が文字列にマッチするかどうかを判断することはできません。 _set_の正規表現(キー)と文字列を指定すると、どの正規表現がその文字列とマッチするかを知る唯一の方法は、すべての正規表現を試すことです。しかし、辞書のパフォーマンスは、すべてのキーを繰り返し処理する必要のない一致するキーを見つける能力に完全に基づいています。したがって、キーのあいまいさを避けることができたとしても、パフォーマンスはキーと値のペアのリストよりも優れていません。 –