擅长:python、mysql、java
<p>要在一行中执行此操作而不需要多次调用split,您需要反转并切片<code>.split()</code>结果,并嵌套字符串联接:</p>
<pre><code>', '.join([':'.join(line.split()[:2][::-1]) for line in result_lines])
</code></pre>
<p>所以列表中的每个条目都是:</p>
<ul>
<li>按空格拆分</li>
<li>切片以仅提供名称和年龄条目</li>
<li>反转,所以年龄在名字之前,使用<code>[::-1]</code>反转。你知道吗</li>
<li>与<code>':'</code>结合得到<code>age?:name?</code>对。你知道吗</li>
<li>我们使用列表理解(<code>[ ... for .. in ... ]</code>),因为使用<code>str.join()</code>会更快。在内部,<code>.join()</code>计算加入前的最终字符串长度,并将生成器强制转换为列表<em></em>。理解力在速度上获胜。你知道吗</li>
</ul>
<p>然后将整个列表与<code>', '</code>连接起来,形成一个逗号分隔的列表。因为我们只分开一次</p>
<p>这将提供:</p>
<pre><code>>>> ', '.join([':'.join(line.split()[:2][::-1]) for line in result_lines])
'age1:name1, age2:name2, age3:name3'
</code></pre>