In Python müssen wir manchmal eine bestimmte Liste basierend auf einer bereitgestellten Zeichenfolge zurückgeben. Dies kann mit verschiedenen Methoden erreicht werden, von denen eine die Nutzung von Wörterbüchern beinhaltet.
Der einfachste Ansatz besteht darin, ein Wörterbuch zu definieren, in dem Schlüssel die Zeichenfolgeneingaben darstellen und entsprechende Werte die sind gewünschte Listen.
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv'] }
Um die gewünschte Liste abzurufen, greifen Sie einfach auf die entsprechende Taste zu:
get_ext['video'] # Output: ['mp4', 'mkv']
Wenn Sie eine funktionsbasierte Lösung bevorzugen, können Sie die get-Methode des Wörterbuchs einer Variablen zuweisen:
get_ext = get_ext.get
Diese Funktion gibt die Liste für den angegebenen Schlüssel oder „Keine“ zurück wenn der Schlüssel nicht existiert.
get_ext('video') # Output: ['mp4', 'mkv']
Um einen benutzerdefinierten Standardwert für unbekannte Schlüssel anzugeben, sollten Sie die Verwendung in Betracht ziehen eine Wrapper-Funktion:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv'] } return types.get(file_type, [])
Diese Funktion gibt eine leere Liste für unbekannte Schlüssel zurück.
Für leistungsbewusste Anwendungen ist es erwähnenswert, dass die Das Typenwörterbuch in der Wrapper-Funktion wird bei jedem Aufruf der Funktion neu erstellt. Um dies zu optimieren, können Sie eine Klasse erstellen und das Typenwörterbuch im Konstruktor initialisieren, um sicherzustellen, dass es nur einmal erstellt wird.
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()
Dieser klassenbasierte Ansatz ermöglicht eine einfache Änderung der erkannten Dateitypen bei gleichzeitiger Beibehaltung der Leistungseffizienz .
Das obige ist der detaillierte Inhalt vonWie kann ich eine vordefinierte Liste in Python basierend auf einer String-Eingabe zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!