2016-07-13 4 views
0

Ich kann das Wörterbuch erfolgreich importieren und ich kann eine Ausgabe aus dem Wörterbuch seiner Werte erhalten, aber es zeigt mir alle Werte und nicht den Wert, der der Eingabe des Benutzers entspricht.Anzeige eines Wörterbuchwerts mit Eingabe

Der Eingang wird zuerst in einen niedrigeren Wert konvertiert und dann in einzelne Wörter aufgeteilt, um im Wörterbuch referenziert zu werden.

Ich habe viele Postings gesucht, aber ich kann keine Lösung finden, die funktioniert.

problemlist = problem1.split() 

for problem in range(len(prob_dict)): 
    if prob_dict in problemlist: 
     solution = [] 
     solution = (prob_dict[problem]) 
     print('Your Solution is:', solution) 
    else: 
     print('could not find a solution') 

das Wörterbuch:

prob_dict = {'wet': ['put in bag of rice to dry out'], 
      'screen': ['screen will need to be replaced'], 
      'charger': ['purchase new charger for our store'] 
      } 
+0

und 'problem1' was? –

+0

Hallo, ich verstehe deine Frage nicht. Kannst du bitte etwas ausarbeiten? –

+0

Geben Sie einen MCVE an (siehe [_Wie erstellen Sie ein minimales, vollständiges und verifizierbares Beispiel_] (https://stackoverflow.com/help/mcve)). – martineau

Antwort

3

if prob_dict in problemlist ist etwas, das fast nie passieren wird. Sie würden dict in einer Liste von Zeichenfolgen nicht finden.

Stattdessen sollten Sie durch die Elemente in der Liste durchlaufen und sehen, ob das Wörterbuch einen Schlüssel mit dem Elemente enthält:

problemlist = [p.lower() for p in problem1.split()] 

for problem in problemlist: 
    if problem in prob_dict: 
     print('Your Solution is: ', prob_dict[problem][0]) 
       #          ^The associated string 
     break # remember to break once solution is found 
else: 
    print('could not find a solution') 
+0

Ich stimme Ihrer Antwort vollkommen zu, fand es aber seltsam, dass das OP sagte, dass sie die Ausgabe aller Wörterbuchwerte erhalten hätten. Ich war sehr verwirrt darüber und fragte mich, was der ursprüngliche Listen- "Problemlistenwert" – EoinS

+0

war * die Eingabe wird zuerst in niedrigere umgewandelt und dann in einzelne Wörter aufgeteilt, um im Wörterbuch referenziert zu werden. * @Eoins An einem Punkt oder einem anderen könnte scheitern, ihr Problem kohärent auszudrücken. Ein Blick auf die vom OP verwendeten Datenstrukturen könnte eine Lösung bieten, die sie in die richtige Richtung führt. Danke für die Beobachtung. –

+0

Danke Moses, das hat mich tagelang in den Wahnsinn getrieben, ich bin neu bei Python und ich versuche es zu lernen, um meiner Tochter zu helfen, es für die Schule zu lernen. –