如何解决为什么 Python 中的这段代码无法识别字符串中的数字?
我有一个字符串,需要将数字提取到字符串中。 “数字”中有一个逗号。如果我删除逗号,该函数将起作用,但如果我离开它,该函数将不起作用。我需要使用逗号的函数。我不知道为什么,这里的逗号有问题。
如果有人告诉我为什么逗号有问题,我将不胜感激。 提前致谢!
def get_numbers(text):
num = [int(i) for i in text.split() if i.isdigit()]
print(num)
get_numbers("16,645")
解决方法
您无需尝试拆分文本,只需遍历 text
代码 1:
def get_numbers(text):
num = [int(i) for i in text if i.isdigit()]
print(num)
get_numbers("16,645")
或者,如果您真的想在逗号处拆分字符串。 代码 2
def get_numbers(text):
text = ''.join(text.split(','))
num = [int(i) for i in text]
print(num)
get_numbers("16,645")
,
您需要删除 split()
方法,以便您的代码如下所示:
def get_numbers(text):
num = [int(i) for i in text if i.isdigit()]
print(num)
get_numbers("")
text.split()
将返回您不想要的 ['16,645']
。当您想用空格分隔字符串时使用它(例如,空格、制表符、换行符)。
在这种情况下,text
字符串是您迭代的迭代器。在列表推导式的每个循环开始时,text
中的一个值将分配给 i
。
split
方法返回 ['16,645']
;一个包含一个字符串的列表,显然不是数字。
您应该在没有 split
的情况下使用它:
def get_numbers(text):
num = [int(i) for i in text if i.isdigit()]
print(num)
get_numbers("16,645")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。