Python|将数字单词转换为数字
有时,在使用Python字符串时,我们可能会遇到需要将命名数字形式的字符串转换为实际数字的问题。这在数学领域和数据科学领域都有应用。让我们讨论可以执行此任务的某些方式。
方法 #1:使用loop + join() + split()
解决此问题的方法之一是使用映射,其中可以将数字与单词映射,然后拆分字符串并使用映射到数字重新连接。
# Python3 code to demonstrate working of
# Convert numeric words to numbers
# Using join() + split()
help_dict = {
'one': '1',
'two': '2',
'three': '3',
'four': '4',
'five': '5',
'six': '6',
'seven': '7',
'eight': '8',
'nine': '9',
'zero' : '0'
}
# initializing string
test_str = "zero four zero one"
# printing original string
print("The original string is : " + test_str)
# Convert numeric words to numbers
# Using join() + split()
res = ''.join(help_dict[ele] for ele in test_str.split())
# printing result
print("The string after performing replace : " + res)
输出 :
The original string is : zero four zero one
The string after performing replace : 0401
方法 #2:使用word2number
库
这个问题也可以使用 PyPI 库word2number
来解决。它具有将单词转换为数字的内置功能。
# Python3 code to demonstrate working of
# Convert numeric words to numbers
# Using word2number
from word2number import w2n
# initializing string
test_str = "zero four zero one"
# printing original string
print("The original string is : " + test_str)
# Convert numeric words to numbers
# Using word2number
res = w2n.word_to_num(test_str)
# printing result
print("The string after performing replace : " + str(res))
输出 :
The original string is : zero four zero one
The string after performing replace : 0401