问题描述
我有一个字符串,需要将数字提取到字符串中。 “数字”中有一个逗号。如果我删除逗号,该函数将起作用,但如果我离开它,该函数将不起作用。我需要使用逗号的函数。我不知道为什么,这里的逗号有问题。
如果有人告诉我为什么逗号有问题,我将不胜感激。 提前致谢!
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")