python - 如何在python中将字符串转换为数字
问题描述
我在 codewars 中看到一个有趣的 python 练习。它是关于将字符串转换为数字。我想要一些建议或指导来解决这个 python 练习。谢谢
这是练习:在这个 kata 中,我们要将字符串转换为整数。字符串仅表示单词中的数字。示例:“一个”1
这是我的代码:
def parse_int(string):
dict_of_numbers={ "zero":0, "one":1, "two":2, "three":3, "four":4, "five":5, "six":6, "seven":7, "eight":8, "nine":9,"ten":10, "eleven":11, "twelve":12, "thirteen":13, "fourteen":14, "fifteen":15, "sixteen":16, "seventeen":17, "eighteen":18, "nineteen":19, "twenty":20, "thirty":30, "forty":40, "fifty":50, "sixty":60, "seventy":70, "eighty":80, "ninety":90,"thousand":1000,"hundred":100}
string=string.replace(' ','-')
numbers=string.split('-')
created_number=0
for number in numbers:
for key,value in dict_of_numbers.items():
if number==key:
created_number+=value
return created_number
解决方案
我有一个解决方案,我没有针对大量数字对其进行测试,但它可能会给你一些想法:
- 口语数字有时相加有时相乘。
- 有时人们会
and
在数字之间加上一个。喜欢:thirty seven thousand and twenty one
- 不要
[]
用来从你的字典中获取价值。使用get
方法。因此,如果没有与数字相对应的数据,您可以控制退货。 - 使用 str
.lower()
来降低字符串中的字母以避免大写、小写问题
我写的代码看起来像:
def parse_int(string):
dict_of_numbers = {"zero": 0, "one": 1, "two": 2, "three": 3, "four": 4, "five": 5, "six": 6, "seven": 7,
"eight": 8, "nine": 9, "ten": 10, "eleven": 11, "twelve": 12, "thirteen": 13, "fourteen": 14,
"fifteen": 15, "sixteen": 16, "seventeen": 17, "eighteen": 18, "nineteen": 19, "twenty": 20,
"thirty": 30, "forty": 40, "fifty": 50, "sixty": 60, "seventy": 70, "eighty": 80, "ninety": 90,
"thousand": 1000, "hundred": 100}
string = string.replace(" and ", " ")
the_number = 0
for each in string.lower().split():
if each in ["hundred", "thousand"]:
the_number *= dict_of_numbers.get(each, 1)
else:
the_number += dict_of_numbers.get(each, 0)
return the_number
print(parse_int("thirty seven thousand and twenty two")) # 37022
推荐阅读
- javascript - 扩展运算符获取数组内对象的单个属性 - JS/TS
- javascript - 在 Angular gridOptions 中调用另一个函数
- android - 如何从数据库中加载数据。UID-通知
- sql - 从 Oracle SQL 中的字符串中提取值
- flutter - flutter_blue 显示 mac 地址而不是 Names
- javascript - 通过 sec 变量 JAVASCRIPT 重新加载函数
- python - 如何从 PySpark 中的单个元素的 RDD 创建对 RDD?
- reactjs - 如何修复我的反应应用程序中的“未定义库”错误
- python - 自动编码器的 fit_generator 产生奇怪的结果
- docker - 用于 MacOS 的 docker 中的 elasticsearch 流产