<p>您可以使用<a href="https://docs.python.org/2/library/functions.html#zip" rel="nofollow">^{<cd1>}</a>获取当前项和它旁边的项(不涉及索引,因此不必担心<code>IndexError</code>),然后使用生成器表达式的<a href="https://docs.python.org/2/library/functions.html#all" rel="nofollow">^{<cd3>}</a>来完成剩下的工作:</p>
<pre><code>>>> lst = ['jump','double blink']
>>> all(dictionary[f] < dictionary[s] for f, s in zip(lst, lst[1:]))
False
>>> lst = d.keys()
>>> all(dictionary[f] < dictionary[s] for f, s in zip(lst, lst[1:]))
True
</code></pre>
<p>这里<code>zip()</code>返回如下内容:</p>
^{pr2}$
<p>另一个选择是使用<a href="https://docs.python.org/2/library/itertools.html#recipes" rel="nofollow">^{<cd5>} recipe from itertools's recipes</a>,它使用迭代器执行完全相同的操作:</p>
<pre><code>>>> from itertools import tee, izip
>>> def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return izip(a, b)
...
>>> all(dictionary[f] < dictionary[s] for f, s in pairwise(lst))
True
>>> list(pairwise(lst))
[('wink', 'double blink'), ('double blink', 'close your eyes'), ('close your eyes', 'jump')]
</code></pre>