ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列入力を使用して変数を選択するにはどうすればよいですか?

Python で文字列入力を使用して変数を選択するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-21 01:17:09873ブラウズ

How Can I Select Variables in Python Using a String Input?

文字列名による変数の選択

文字列入力に基づいて変数を選択するには、いくつかの実行可能な方法があります。

辞書

これには通常の辞書が適していることがよくあります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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。