Ich bin mir nicht sicher, ob ich deine Frage richtig interpretiert habe. Im Allgemeinen können Sie eine Dictionary-Tabelle als @Jameson erwähnt erstellen. Aber um den Ausdruck ohne Trennzeichen zu analysieren, würde die Trennung zwischen den Zeichen Ihre Funktion auf Ihre Auswahlmöglichkeiten beschränken, die in Ihrem Code zur Verfügung gestellt wird, und technisch nicht praktisch für größere Maßstäbe, funktioniert aber für kleinere (begrenzte). Lassen Sie mich also allgemeine Wege zeigen, um dieses Ziel zu erreichen:
def get_vals(vals, table):
res = []
for x in vals:
res.append(table.get(x, 'error')) # Or anything instead of error for invalid inputs
return res
>>> table = {'a':'test1', 'b':'test2'}
>>> get_vals('ab', table)
['test1', 'test2', 'error', 'error']
Diese Funktion parst nur ein einzelnes Zeichen pro Eingabe einer Zeichenfolge, wenn Sie Zeichenfolge eingeben "15"
es wird versuchen, den Wert "1"
aus dem Wörterbuch zu holen und dann "5"
, nicht String "15"
als Ganzes!
Mit dem Begrenzer Weg wird dies praktischer, einfacher zu pflegen und zu arbeiten. Zum Beispiel:
def get_vals2(vals, table, delimiter = ','): # Default: split string with comma or whatever
res = []
for x in vals.split(delimiter):
res.append(table.get(x, 'error'))
return res
>>> get_vals2('1,a,15,b', table)
['error', 'test1', 'error', 'test2']
Wie Sie sehen können, wenn Sie Eingang 1 und 5, es sind "15"
wenn analysiert, im Gegensatz zu der früheren Version. Eine andere Option wäre, alle Kombinationen aufzulisten, die der Benutzer eingeben kann, aber was für eine mühsame Arbeit! Zum Beispiel:
table = {'4e15': your values, 'e415': your values, '415e': your values, continuing with others as well...}
Sehr komplex und Sie haben eine riesige Liste von Kombinationen schreiben und nicht effizient, wenn es um Wartung, da Sie viele Kombinationen hartcodiert, eine kleine kleine Änderung in Wieder- führen könnte schreibe alle Kombinationen wieder!
was hast du bisher versucht ?? .. plz poste den code, es wird den leute helfen zu antworten !! – San