<p>您可以在此处将列表理解与一些字符串方法结合使用:</p>
<pre><code>>>> s = ['[ 0.93913063 0.28020878 0.2769496 ]', '[ 0.21672141 0.29633945 0.19763641]', '[ 0.74718183 0.33466203 0.13866566]', '[ 0.1067503 0.20448574 0.16817043]', '[ 0.1223612 0.11653754 0.13288494]', '[ 0.48761208 0.78240743 0.38697977]', '[ 0.4300345 0.50380231 0.48102237]']
>>> [map(float, x.strip('[]').split()) for x in s]
[[0.93913063, 0.28020878, 0.2769496], [0.21672141, 0.29633945, 0.19763641], [0.74718183, 0.33466203, 0.13866566], [0.1067503, 0.20448574, 0.16817043], [0.1223612, 0.11653754, 0.13288494], [0.48761208, 0.78240743, 0.38697977], [0.4300345, 0.50380231, 0.48102237]]
</code></pre>
<p>这里<code>str.strip('[]')</code>从字符串中删除<code>[]</code>,然后在空白处拆分数据,然后对每个项应用<code>float()</code>。你知道吗</p>
<p>另一个选择是在这里将<code>ast.literal_eval</code>与regex一起使用:</p>
<pre><code>>>> import re
>>> from ast import literal_eval
>>> r = re.compile(r'(\d)\s')
>>> [literal_eval(r.sub(r'\1,', x)) for x in s]
[[0.93913063, 0.28020878, 0.2769496], [0.21672141, 0.29633945, 0.19763641], [0.74718183, 0.33466203, 0.13866566], [0.1067503, 0.20448574, 0.16817043], [0.1223612, 0.11653754, 0.13288494], [0.48761208, 0.78240743, 0.38697977], [0.4300345, 0.50380231, 0.48102237]]
</code></pre>