2016-07-22 13 views
0

Ich benutze Python 3, um mit zu beginnen. Ich versuche, die Eingabe von der Konsole auf einen Schlüssel in meinem Wörterbuch zu teilen und den Wert des besagten Schlüssels auf der Konsole anzuzeigen. Ich habe die Dinge stundenlang ausprobiert und beschlossen, zu brechen und um Hilfe zu bitten. Hier ist ein Teil des Codes.bekommen unhashable Typ: 'Liste' bei der Verwendung von .split()

enter = input("test ").split() 
names1 = {8410:"A", 8422:"B", 8450:"C", 8386:"D", 8394:"E", 8395:"F", 8318:"G", 8451:"H", 8348:"I", 8294:"J", 8349:"K"} 
if enter in names1: 
    print(names1[enter]) 

Ich habe 16 Wörterbücher mit 7000+ Namen in ihnen mit Mitarbeiter-IDs. Mein Hauptziel hier ist in der Lage sein, eine URL einzugeben, die eine ID enthält, zB: www.domain.com/8450 und die Konsole nur die 8450 greifen und dann C.

Vielen Dank im Voraus.

Antwort

1

Wenn Sie wissen, Ihre URLs, wie die Verwendung rsplit('/') wie so sein werden:

>>> enter = int(input('test: ').rsplit('/')[-1]) 
test: www.domain.com/8450 
>>> enter 
8450 
>>> names1[enter] 
'C' 

Auch werden Ihre Schlüssel gespeichert, wie Ints so die Eingabe konvertieren mit int() int.

0

split() gibt eine Liste

ZB:

>>> input('test:').split() 
test:hello 
>>> ['hello'] 

Sie überprüfen, ob eine der Tasten in der dict eine Liste, wie diese sind:

>>> if ['input'] in {'input': 'sample data'} 

Welche wird nicht funktionieren .

Sie müssen Ihre Eingaben bereinigen. Es gibt viele Möglichkeiten, dies zu tun. Ein Beispiel könnte sein:

>>> if isinstance(enter, list): 
>>>  enter = enter[0] 

Die Wahl liegt bei Ihnen.

+0

Was genau meinen Sie mit Desinfektion? Ich verstehe nicht, wie dieser Code meinen betreffen soll. –

Verwandte Themen