Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich auf eine vordefinierte Liste basierend auf einer String-Eingabe in Python zugreifen?

Wie kann ich auf eine vordefinierte Liste basierend auf einer String-Eingabe in Python zugreifen?

Susan Sarandon
Susan SarandonOriginal
2024-12-18 20:42:17460Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn