<p>您有一个<code>list</code>的<code>list</code>,而不是{<cd3>}s的列表。这将是一个幼稚的方法:</p>
<pre><code>from num2words import num2words
result=[]
with open("/Users/mr/Documents/Stemmingg.txt") as filer:
for line in filer:
result.append(line.strip().split())
result = [[
num2words(subitem) if isinstance(subitem, (int, float, long)) else subitem for subitem in item
] for item in result]
</code></pre>
<p>这是一个<em>嵌套列表理解</em>;请参见<a href="https://stackoverflow.com/a/8050243/145279">here</a>以了解有关它们如何工作的更多信息。在</p>
<p>现在,这还是有问题的!如果我有<em>字符串</em><code>'22'</code>,我们的<a href="https://docs.python.org/2/library/functions.html#isinstance" rel="nofollow noreferrer">^{<cd5>}</a>检查失败!所以我们可能需要一些额外的逻辑,在<a href="https://docs.python.org/2/library/stdtypes.html#str.isdigit" rel="nofollow noreferrer">^{<cd6>}</a>的帮助下:</p>
^{pr2}$
<p>如果不想将<code>float</code>s转换为单词,请改为执行以下操作:</p>
<pre><code>def digitsToWords(item):
if isinstance(item, (int, long)):
return num2words(item)
if isinstance(item, (str, unicode)) and item.isdigit():
return num2words(int(item))
return item
result = [[digitsToWords(subitem) for subitem in item] for item in result]
</code></pre>