我正在循环处理列
'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]
答案 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]