擅长:python、mysql、java
<p>运用理解力</p>
<pre class="lang-py prettyprint-override"><code>inp = '1,2,4,5,6,7;2,3,4,5,6,7,8;1,2,4,5,6,8'
print([s.split(',') for s in inp.split(';')])
</code></pre>
<p>导致</p>
<pre><code>[['1', '2', '4', '5', '6', '7'], ['2', '3', '4', '5', '6', '7', '8'], ['1', '2', '4', '5', '6', '8']]
</code></pre>
<p>这是更小、更容易阅读的代码,这是我希望您寻找的优化的一部分。它不会减少循环次数,但它执行的赋值更少,使用的临时变量更少,函数调用更少(即<code>append()</code>)。也许这些调用中的一些是在理解中的幕后进行的,但是您应该利用Python对其理解所做的任何优化,即调用什么函数</p>
<p>更新</p>
<p>查看<a href="https://stackoverflow.com/a/67921750/14757226">this answer</a>了解OP的性能分析和这个答案</p>
<p>更新2</p>
<p>要将所有字符串转换为int,可以使用<code>map</code>或其他理解</p>
<pre class="lang-py prettyprint-override"><code>inp = '1,2,4,5,6,7;2,3,4,5,6,7,8;1,2,4,5,6,8'
print([list(map(int, s.split(','))) for s in inp.split(';')])
</code></pre>
<p>或</p>
<pre class="lang-py prettyprint-override"><code>inp = '1,2,4,5,6,7;2,3,4,5,6,7,8;1,2,4,5,6,8'
print([[int(c) for c in s.split(',')] for s in inp.split(';')])
</code></pre>