ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列入力に基づいて事前定義されたリストを返すにはどうすればよいですか?

Python で文字列入力に基づいて事前定義されたリストを返すにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-18 22:04:15356ブラウズ

How Can I Return a Predefined List in Python Based on String Input?

文字列入力に基づいて事前に決定された値を返す

Python では、指定された文字列に基づいて特定のリストを返す必要がある場合があります。これはさまざまな方法を使用して実現できますが、そのうちの 1 つは辞書の活用です。

辞書の使用

最も簡単なアプローチは、キーが文字列入力を表し、対応する値が文字列である辞書を定義することです。

get_ext = {'text': ['txt', 'doc'],
            'audio': ['mp3', 'wav'],
            'video': ['mp4', 'mkv']
}

必要なリストを取得するには、適切なリストにアクセスするだけです。 key:

get_ext['video']
# Output: ['mp4', 'mkv']

辞書での関数の使用

関数ベースのソリューションを希望する場合は、辞書の get メソッドを変数に割り当てることができます:

get_ext = get_ext.get

この関数は、指定されたキーのリストを返すか、キーがリストされていない場合は None を返します。

get_ext('video')
# Output: ['mp4', 'mkv']

カスタム デフォルト値の使用

不明なキーのカスタム デフォルト値を指定するには、ラッパー関数の使用を検討してください。

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()

このクラスベースのアプローチにより、パフォーマンス効率を維持しながら、認識されたファイル タイプを簡単に変更できます。 .

以上がPython で文字列入力に基づいて事前定義されたリストを返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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