Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich auf eine vordefinierte Liste basierend auf einer String-Eingabe in Python zugreifen?
Zugriff auf Variablen über den String-Namen
Problem:
Sie wünschen sich eine Funktion, die a zurückgibt vordefinierte Liste basierend auf einer String-Eingabe. Bei einer gegebenen Zeichenfolge „Audio“ sollte die Funktion beispielsweise die Liste ['mp3', 'wav'] ausgeben.
Einfachste Lösung mit einem Wörterbuch:
Ein Standardwörterbuch kann diese Anforderung mühelos erfüllen.
get_ext = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv'] } get_ext['video'] # Returns ['mp4', 'mkv']
Verwenden Funktionen:
Für fortgeschrittenere Anwendungen könnte die Verwendung von Funktionen bevorzugt werden.
Zuweisen der Get-Methode eines Wörterbuchs:
get_ext = get_ext.get get_ext('video') # Returns ['mp4', 'mkv']
Verpacken eines Wörterbuchs in einem Funktion:
def get_ext(file_type): types = {'text': ['txt', 'doc'], 'audio': ['mp3', 'wav'], 'video': ['mp4', 'mkv'] } return types.get(file_type, [])
Erstellen einer benutzerdefinierten Klasse für Erweiterbarkeit:
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() get_ext('audio') # Returns ['mp3', 'wav']
Damit können Sie Dateitypen dynamisch ändern.
get_ext.types['binary'] = ['bin', 'exe'] get_ext('binary') # Returns ['bin', 'exe']
Das obige ist der detaillierte Inhalt vonWie kann ich auf eine vordefinierte Liste basierend auf einer String-Eingabe in Python zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!