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.
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']
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']
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.
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!