📜  Python|将数字单词转换为数字(1)

📅  最后修改于: 2023-12-03 15:19:20.031000             🧑  作者: Mango

Python | 将数字单词转换为数字

在处理文本时,常常会有将数字单词(如 one、two、three 等)转换为对应的数字的需求。在Python中,有多种方法可以实现这一功能。

方法一:使用字典

我们可以先定义一个字典,将数字单词和对应的数字进行一一映射。然后遍历字符串,对每个单词进行查字典操作,最后将得到的数字相加即可。

def word_to_num(s):
    d = {"zero": 0, "one": 1, "two": 2, "three": 3, "four": 4, 
         "five": 5, "six": 6, "seven": 7, "eight": 8, "nine": 9}
    words = s.split()
    res = 0
    for word in words:
        if word in d:
            res = res * 10 + d[word]
    return res
方法二:使用第三方库

Python中有许多第三方库可以帮助我们实现对数字单词的处理。其中,num2words是一个常用的库,它可以将数字转换为对应的单词,也可以将单词转换为对应的数字。

首先需要安装该库,可以使用以下命令:

pip install num2words

然后,我们可以直接调用num2words函数进行数字单词和数字之间的转换,示例代码如下:

from num2words import num2words

def word_to_num(s):
    words = s.split()
    res = 0
    for word in words:
        if word.isdigit():
            res = res * 10 + int(word)
        else:
            res = res * 10 + int(num2words(word))
    return res
总结

本文介绍了两种将数字单词转换为数字的方法,需要根据实际情况选择最适合自己的方法。使用字典虽然代码量较多,但是灵活性较高;使用第三方库可以省去很多麻烦,但是需要安装库并且不一定比字典效率更高。