Hallo,
ich würde gerne per input-Abfrage ein Listenelement ausgeben.
Leider klappt das nicht so, wie ich mir das gedacht habe.
Was mache ich falsch?
Hier ist mein Code:
a = ["a","b","c"]
b = ["d","e","f"]
c = ["g","h","i"]
buchstabe = input ("Buchstabe eingeben: ")
zahl = int(input ("Zahl eingeben: "))
print (buchstabe[zahl])
Ich dachte, wenn ich z.B. bei buchstabe b und bei zahl 1 eingebe, dann sollte Element das 2. Element der Liste b , also "e" erscheinen, aber stattdessen erscheint nur eine Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\AS\Documents\Codierung ausgeben.py", line 6, in <module>
print (buchstabe[zahl])
IndexError: string index out of range
Wenn ich b und 0 eingebe wird b ausgegeben, aber das ist nicht das Element der Liste, sondern der eingegebene Buchstabe. Wie kann ich Python dazu bringen, sich auf die Liste zu beziehen, bzw. wie könnte ich es lösen, dass es funktioniert?
Listen abfragen per input
Schauen wir uns mal an, was du da machst:
Du bindest eine Eingabe an den Namen "buchstabe" und eine weitere Eingabe an den Namen "zahl".
Danach versuchst du einen Indexzugriff auf "buchstabe". Buchstabe enthält aber das, was eingegeben wurde. Wieso soll denn darauf ein Indexzugriff erfolgen?!?
Du verwendest die falsche (nämlich keine) Datenstruktur. Statt willkürliche Listen zu verwenden und die an beliebige Namen zu binden, möchtest du eigentlich ein dict verwenden mit dem "Namen" der Liste als Schlüssel und der Liste als Wert.
Du bindest eine Eingabe an den Namen "buchstabe" und eine weitere Eingabe an den Namen "zahl".
Danach versuchst du einen Indexzugriff auf "buchstabe". Buchstabe enthält aber das, was eingegeben wurde. Wieso soll denn darauf ein Indexzugriff erfolgen?!?
Du verwendest die falsche (nämlich keine) Datenstruktur. Statt willkürliche Listen zu verwenden und die an beliebige Namen zu binden, möchtest du eigentlich ein dict verwenden mit dem "Namen" der Liste als Schlüssel und der Liste als Wert.
Woher soll Python wissen, dass Du die Liste b meinst, wenn Du "b" eingibst. Das musst Du schon explizit sagen
Code: Alles auswählen
daten = dict(
a=["a","b","c"],
b=["d","e","f"],
c=["g","h","i"],
}
buchstabe = input("Buchstabe eingeben: ")
zahl = int(input("Zahl eingeben: "))
print(daten[buchstabe][zahl])