def iterate_from(iterable, start_value):
# step 1: get an iterator
itr = iter(iterable)
# step 2: advance the iterator to the first matching value
first_value = next(value for value in itr if value == start_value)
# step 3: yield the remaining values
yield first_value
yield from itr
list[list.index(value):]
见https://docs.python.org/3/tutorial/datastructures.html
列表.索引(x[,开始[,结束]])
返回值为x的第一个项的列表中从零开始的索引。如果没有该项,则引发ValueError。在
可选参数start和end在slice表示法中解释为,用于将搜索限制到列表的特定子序列。返回的索引是相对于完整序列的开始而不是相对于start参数计算的。在
下面是一个基于iterators的解决方案,它可以处理任何iterable,而不仅仅是列表:
这里我使用^{} 函数从iterable中获取迭代器,使用^{} 函数向前移动迭代器。您可能还对What does the "yield" keyword do?感兴趣。在
你可以这样使用它:
^{pr2}$Yes使用
index()
查找元素在列表中的位置。在所以如果你的清单是这样的:
您希望从}(so2)的位置。在
input3
开始初始化,然后使用ip_list.index('input3')
返回{然后,您只需以正常方式(就像您在做
^{pr2}$ip_list[2:]
)对列表进行切片,但要使用index()
:见Finding the index of an item given a list containing it in Python
相关问题 更多 >
编程相关推荐