Seite 1 von 1

Listen abfragen per input

Verfasst: Donnerstag 30. Dezember 2021, 10:50
von alfredsc
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?

Re: Listen abfragen per input

Verfasst: Donnerstag 30. Dezember 2021, 11:12
von sparrow
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.

Re: Listen abfragen per input

Verfasst: Donnerstag 30. Dezember 2021, 11:27
von Sirius3
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])

Re: Listen abfragen per input

Verfasst: Donnerstag 30. Dezember 2021, 11:40
von alfredsc
Vielen Dank, so funktioniert es (nur in der vierten Zeile muss eine normale Klammer statt "}" hin.