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
Libérer: 2024-12-18 22:04:15
original
344 Les gens l'ont consulté

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']
}
Copier après la connexion

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

get_ext['video']
# Output: ['mp4', 'mkv']
Copier après la connexion

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
Copier après la connexion

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']
Copier après la connexion

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, [])
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal