2017-03-27 5 views
1

Anfängerfrage:aus der Liste nächstes Element auswählen bedingt

sagt, dass ich die folgende Liste, habe

list=['spam', 'eggs', 'ham', 'foo', 'bar'] 

ich in der Liste, wenn ein bestimmte Artikel überprüfen möge ist. Wenn dieser Artikel in der Liste ist, möchte ich den nächsten Artikel auswählen. Z.B. Wenn eggs in list ist, möchte ich ham zurückgeben.

Meine Frage ist ähnlich wie this one, aber ich mache nicht möchte das nächste Element angeben. I.e. Ich möchte, dass der Code das nächste Element basierend auf der Position des ursprünglichen Elements zurückgibt. wie

Etwas,

if 'eggs' in list: 
    next = item(position of eggs + 1) 

Wie etwa ich gehen?

Antwort

2

Vorausgesetzt, dass es mit dem gleichen Wert nur 1 Punkt ist (sonst index wie funktioniert nicht erwartet, da es den Index der ersten Vorkommen gibt) können Sie dies tun:

l=['spam', 'eggs', 'ham', 'foo', 'bar'] 

try: 
    next_element = l[l.index('eggs')+1] 
except (ValueError,IndexError): 
    next_element = "" 

print(next_element) 

wenn das Element nicht gefunden oder kommt zuletzt, die Ausnahme ist gefangen und nichts wird gedruckt.

BTW: Ich habe die list und next Namen geändert, weil sie eingebaut sind.

+0

Funktioniert wie ein Charme! Vielen Dank. – LucSpan

Verwandte Themen