Maison >développement back-end >Tutoriel Python >Comment puis-je renvoyer une liste prédéfinie en Python basée sur une entrée de chaîne ?

Comment puis-je renvoyer une liste prédéfinie en Python basée sur une entrée de chaîne ?

DDD
DDDoriginal
2024-12-18 22:04:15356parcourir

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

Renvoi d'une valeur prédéterminée basée sur une entrée de chaîne

En Python, nous rencontrons parfois le besoin de renvoyer une liste spécifique basée sur une chaîne fournie. Ceci peut être réalisé en utilisant diverses méthodes, dont l'une consiste à exploiter des dictionnaires.

Utiliser un dictionnaire

L'approche la plus simple consiste à définir un dictionnaire dans lequel les clés représentent les entrées de chaîne et les valeurs correspondantes sont les listes souhaitées.

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

Pour récupérer la liste souhaitée, accédez simplement à la touche appropriée :

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

Utiliser une fonction avec le Dictionnaire

Si vous préférez une solution basée sur une fonction, vous pouvez attribuer la méthode get du dictionnaire à une variable :

get_ext = get_ext.get

Cette fonction renverra la liste pour la clé spécifiée ou Aucune si la clé n'existe pas.

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

Utilisation d'une valeur par défaut personnalisée

Pour spécifier une valeur par défaut personnalisée pour les clés inconnues, envisagez d'utiliser un fonction wrapper :

def get_ext(file_type):
    types = {'text': ['txt', 'doc'],
             'audio': ['mp3', 'wav'],
             'video': ['mp4', 'mkv']
    }

    return types.get(file_type, [])

Cette fonction renverra une liste vide pour les clés inconnues.

Résoudre les problèmes de performances

Pour les applications soucieuses des performances, il convient de noter que les types Le dictionnaire dans la fonction wrapper est recréé à chaque fois que la fonction est appelée. Pour optimiser cela, vous pouvez créer une classe et initialiser le dictionnaire de types dans le constructeur, en vous assurant qu'il n'est créé qu'une seule fois.

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

Cette approche basée sur les classes permet de modifier facilement les types de fichiers reconnus tout en maintenant l'efficacité des performances. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn