Select 有条件地从列表中选择下一个元素

Select next element from list conditionally

初学者问题:

假设我有以下列表,

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

我想检查某个项目是否在列表中。如果此项目在列表中,我想 select 下一个项目。例如。如果 eggslist,我想 return ham

我的问题类似于this one,但我不想指定下一个元素。 IE。我希望代码根据初始元素的位置 return 下一个项目。

有点像,

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

我该怎么办?

前提是只有 1 个项目具有相同的值(否则 index 无法按预期工作,因为它 returns 是 第一次 出现的索引) 你可以这样做:

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

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

print(next_element)

如果元素未找到或出现在最后,则捕获异常并且不打印任何内容。

顺便说一句:我更改了 listnext 名称,因为它们是内置的。