我有一个字符串列表,我想从中把数字转换成文本等价物。二比二
结果如下:
[
['nn', 'known', 'tsutsumi', 'father', 'yasujiro', 'sow', 'seed', 'family', 'dominion'],
['un', 'secretari', 'gener', 'kofi', 'annan', 'appoint', 'special', 'repres', 'iraq', 'help', 'improv', 'commun', 'iraqi', 'leader'],
['year', '2016']
]
这是我的代码:
^{pr2}$但是,这给了我一个错误,它说:
TypeError: type(['nn', 'known', 'tsutsumi', 'father', 'yasujiro', 'sow', 'seed', 'family', 'dominion']) not in [long, int, float]
您有一个}s的列表。这将是一个幼稚的方法:
list
的list
,而不是{这是一个嵌套列表理解;请参见here以了解有关它们如何工作的更多信息。在
现在,这还是有问题的!如果我有字符串} 检查失败!所以我们可能需要一些额外的逻辑,在^{} 的帮助下:
^{pr2}$'22'
,我们的^{如果不想将
float
s转换为单词,请改为执行以下操作:这个特定错误的原因是因为结果数组实际上是数组数组。在
所以说
实际上
['nn', 'known', 'tsutsumi', 'father', 'yasujiro', 'sow', 'seed', 'family', 'dominion']
您可以选择将其展平为一个一维数组,或者有一个嵌套的for循环,就像这样(或者使用嵌套列表理解,如上所述):
^{pr2}$但是,你仍然有一个问题num2单词必须取一个数字。你的项目都不是数字(它们都是字符串)。因为您是从一个文件进行解析的,所以您可能应该尝试将其转换为int,并且只有在它有效的情况下才进行转换。所以代码看起来像:
首先尝试创建一个列表}不是{}。在
result
,它是扁平的,即如果有嵌套的列表,它里面没有嵌套的列表。如果列表项是number(int
或long
,则使用isdigit()
函数)并在传递给函数num2words
之前使用literal_eval
,因为num2words
期望{N.B.如果你想保持每隔一个单词,那么就改变
这个
^{pr2}$到
相关问题 更多 >
编程相关推荐