擅长:python、mysql、java
<p>使用<code>for</code>循环直接遍历对象(而不是遍历它们的索引):</p>
<pre><code>for test_case in test_cases:
print test_case.ident
</code></pre>
<p>这是一种通用的方法,当您希望循环对象时,99%的时间都应该使用这种方法。它在这里工作得很好,可能是理想的解决方案。</p>
<p>如果确实需要索引,则应使用<a href="https://docs.python.org/3/library/functions.html#enumerate" rel="nofollow noreferrer">^{<cd2>}</a>:</p>
<pre><code>for index, test_case in enumerate(test_cases):
print index, test_case.ident
</code></pre>
<p>它仍在对象上循环,但同时从<code>enumerate</code>接收它们的索引。</p>
<hr/>
<p><strong>在您的特定用例中,还有另一个选项。如果你有很多对象,一个一个地打印出来可能会很慢(调用<code>print</code>相当昂贵)。如果性能出现问题,可以使用<a href="https://docs.python.org/3/library/stdtypes.html#str.join" rel="nofollow noreferrer">^{<cd5>}</a>预先连接值,然后将其全部打印一次:</p>
<pre><code>print '\n'.join(tc.ident for tc in test_cases)
</code></pre>
<p>我个人推荐第一种方法,只有当你需要打印出很多东西的时候才会提到后一种方法,而且实际上你可以用肉眼看到性能问题。</p>