2017-08-04 1 views
0

Sagen wir, ich habe zwei Listen A und B von Preisen, wobei jeder Preis einem Code entspricht. Wie A1 ist $ 2,50, A2 ist $ 3,50 usw.Wie man einen Wert aus einer Liste, vom Benutzer eingegebenen Code, einer Variablen zuweist

Der Benutzer gibt die Codes der gewünschten Artikel ein. Von dort brauche ich nur die Preise der Artikel, die sie den Variablen zugewiesen haben. Wie stelle ich den eingegebenen Code auf die entsprechenden Kosten ein?

items = [str(x) for x in input("What items would you like?").split()] 
item1 = items[0] 
item2 = items[1] 
A = [2.50, 3.50, 4.50, 5.00, 6.50] 
B = [2.00, 3.00, 1.50, 5.50, 3.50] 

Antwort

1

Wenn der erste Buchstabe eines jeden Eingangs Benutzer mit dem Namen der Liste entspricht, die Sie von der Abholung (dh wie Sie gesagt haben, „A1“ =>A[0]), dann werden Sie die geschmäht eval verwenden müssen in Ihre Lösung.

Aber zuerst, lassen Sie uns reden Eingabeformat. Hier ist, was ich empfehlen:

selections = map(lambda w: (w[0], int(w[1:])), input('> ').split()) 

Dies gibt Ihnen eine Liste der Liste (na ja, Kartenobjekt) von Paaren: das erste Element davon ist die Liste Namen, von denen der zweite ist der Index.

Jetzt können wir unsere Daten aus den jeweiligen Listen greifen:

for list_name, index in selections: 
    print(eval(list_name)[index-1]) # -1 since input is 1-indexed 

demo

Verwandte Themen