回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在学习Python,并试图找出一种有效的方法,将一个由逗号分隔的数字串标记成一个列表。格式良好的案例如我所料,但格式不太好的案例并不多。</p>
<p>如果我有这个:</p>
<pre><code>A = '1,2,3,4'
B = [int(x) for x in A.split(',')]
B results in [1, 2, 3, 4]
</code></pre>
<p>这是我所期望的,但是如果字符串更像</p>
<pre><code>A = '1,,2,3,4,'
</code></pre>
<p>如果我对B使用与上面相同的列表理解表达式,就会得到一个异常。我想我理解原因(因为有些“x”字符串值不是整数),但我认为有一种方法可以非常优雅地解析它,使字符串a的标记化工作得更直接一些,就像在C中迭代调用strtok(a,“,\n\t”)</em></strong>一样</p>
<p>为了明确我的要求;我在Python中寻找一种优雅/高效/典型的方式来拥有以下所有字符串示例:</p>
<pre><code>A='1,,2,3,\n,4,\n'
A='1,2,3,4'
A=',1,2,3,4,\t\n'
A='\n\t,1,2,3,,4\n'
</code></pre>
<p>返回同一列表:</p>
<pre><code>B=[1,2,3,4]
</code></pre>
<p>通过某种简洁的表达。</p>