ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列入力を使用して変数を選択するにはどうすればよいですか?
文字列入力に基づいて変数を選択するには、いくつかの実行可能な方法があります。
辞書
これには通常の辞書が適していることがよくありますtask:
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} get_ext['video'] # returns ['mp4', 'mkv']
Function
特定の理由で関数が必要な場合は、辞書の get メソッドに割り当てることができます:
get_ext = get_ext.get # Equivalent to get_ext = lambda key: get_ext.get(key) get_ext('video') # returns ['mp4', 'mkv']
デフォルトでは、不明なキーに対して None が返されます。代わりに KeyError を発生させるには、get_ext.__getitem__:
get_ext = get_ext.__getitem__ # Equivalent to get_ext = lambda key: get_ext.__getitem__(key) get_ext('video') # returns ['mp4', 'mkv']
カスタム デフォルト値
に割り当てます。辞書をラップすることでカスタム デフォルト値を実装できます。 function:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} return types.get(file_type, [])
最適化
関数呼び出しごとにディクショナリを再作成しないようにするには、クラス:
class get_ext(object): def __init__(self): self.types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv']} def __call__(self, file_type): return self.types.get(file_type, []) get_ext = get_ext()
This認識されたファイルタイプを簡単に変更できます:
get_ext.types['binary'] = ['bin', 'exe'] get_ext('binary') # returns ['bin', 'exe']
以上がPython で文字列入力を使用して変数を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。