2017-02-06 2 views
0

Ich habe ein Problem beim Vergleich von 2 Listenindizes. In CodeVergleichen von 2 Listenindizes

inventory=['q', 'w', 'e', 'r'] 

print(inventory) 

if 'q' and 'w' in inventory: 

    a=inventory.index('q') 
    b=inventory.index('w') 
else: 
    print('\nNothing') 
if a > b: 
    a+=1 
    del inventory[:a] 
    print("Your inventory:") 
    print(inventory) 
    print(a) 
elif b<a: 
    b+=1 
    del inventory[:b] 
    print("Your inventory:") 
    print(inventory) 
    print(b) 
else: 
    print('Sth went wrong') 
    print(a,b) 

a und b nicht von der Konsole vergleichen -Ausgang wollen, ist: ['q', 'w', 'e', 'r'] Sth went wrong 0 1 Es Nähte, dass 2 ints nicht in der Lage sind zu vergleichen. Weiß jemand warum?

+5

Nicht streng mit Ihrem Problem, aber "q" und "w" im Inventar "nicht tun, was Sie denken, dass es tut. Werden 'inventory = [" w "]' und ''q' und 'w' in Inventory' werden immer noch als True ausgewertet. – Kevin

Antwort

2

In Ihrem if Aussage haben Sie

if a > b: 
    ... 
elif b < a: 
    ... 

Diese dasselbe sind. Die zweite Bedingung sollte b > a:

+0

Danke. Ich habe es nicht früher gesehen :) –

+2

jetzt können Sie die Antwort akzeptieren. –

+0

Wir schreiben normalerweise keine vollständigen Antworten auf Tippfehler, weil sie zukünftigen Lesern mit einem ähnlichen Problem wahrscheinlich nicht helfen werden: Sie werden diese Frage wahrscheinlich nicht von Google finden. Daher löscht das System nach einigen Tagen automatisch geschlossene Tippfehlerfragen, aber upvoted/accepted Antworten blockieren diesen Prozess. –