擅长:python、mysql、java
<p>下面是一个基于<a href="https://docs.python.org/3/library/stdtypes.html#iterator-types" rel="nofollow noreferrer">iterators</a>的解决方案,它可以处理任何iterable,而不仅仅是列表:</p>
<pre><code>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
</code></pre>
<p>这里我使用<a href="https://docs.python.org/3/library/functions.html#iter" rel="nofollow noreferrer">^{<cd1>}</a>函数从iterable中获取迭代器,使用<a href="https://docs.python.org/3/library/functions.html#next" rel="nofollow noreferrer">^{<cd2>}</a>函数向前移动迭代器。您可能还对<a href="https://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do">What does the "yield" keyword do?</a>感兴趣。在</p>
<p>你可以这样使用它:</p>
^{pr2}$