擅长:python、mysql、java
<p>有一些不错的<code>re</code>-解决方案,但我只想添加这个非正则表达式解决方案:</p>
<pre><code>>>> s = "John Smith,M,23 Ashley Jones,F,18 James Smith Johns,M,20"
>>> sum((item.split(None, 1) for item in s.split(',')), list())
['Name', 'Gender', 'Age', 'John Smith', 'M', '23', 'Ashley Jones', 'F', '18', 'James Smith Johns', 'M', '20']
</code></pre>
<p>除了<code>sum</code>,还可以使用<code>itertools.chain</code>。但最终,它似乎一点也不短。你知道吗</p>
<pre><code>>>> list(itertools.chain(*[item.split(None, 1) for item in s.split(',')]))
</code></pre>
<p>或者更好</p>
<pre><code>>>> list(itertools.chain.from_iterable(item.split(None, 1) for item in s.split(',')))
</code></pre>