如何从此输入字符串中提取数字

时间:2016-07-31 04:38:01

标签: python regex string list numbers

如果我有输入字符串:

a = 'W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11'

如何提取数字并存储在列表中?例如

numList = [1,2,3,4,5,6,7,8,9,10,11]

我试过这样做:

[int(t) for t in a if t.isdigit()]

这仅适用于单位数字,但不适用于双位数字。

2 个答案:

答案 0 :(得分:2)

您可以按空格分割,然后将每个项目的第一个字符分割出来:

>>> [int(item[1:]) for item in a.split()]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

您也可以(如果适用)(不知道输入字符串的来源和可能的变体),只需从字符串中删除W并拆分:

>>> a = a.replace("W", "")
>>> [int(item) for item in a.split()]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

答案 1 :(得分:0)

您可以使用正则表达式执行此操作:

import re
numList = re.findall(r'\d+', a)