从python中的字符串中提取数字时出错

时间:2018-07-27 19:14:33

标签: python arrays

我正在循环处理列

    'US-Eco.Metric8_MomChg'.'US-Eco.Metric9_MomChg','US-Eco.Metric10_MomChg'

我需要从字符串中提取整数并将其保存在数组中。我正在使用以下代码,但出现错误。请帮我。

  for col in self.columns[]:
   country, market = col.split('-')
   num = []
   num.append([int (s) for market in str.split() if market.isdigit ()])

错误消息:

   TypeError: descriptor 'split' of 'str' object needs an argument

预期输出:

    [8,9,10]

1 个答案:

答案 0 :(得分:2)

您想要的是类似num = [int(s) for s in market if s.isdigit()]的东西。但这将分别提取数字的每个数字。

相反,使用re.findall提取字符串格式的所有数字,然后使用int方法将它们转换为数字

>>> import re
>>> s = "'US-Eco.Metric8_MomChg'.'US-Eco.Metric9_MomChg','US-Eco.Metric10_MomChg'"
>>> list(map(int, re.findall(r'\d+', s)))
[8, 9, 10]