【发布时间】:2017-08-02 15:02:30
【问题描述】:
我有一个这样的列表
ls = ['5 k', 'k', '13 k', 'k']
我想得到一个包含数字的列表
ls = ['5 k', '13 k']
我是这样做的
import re
y = [x for x in ls if x == re.compile('^\d+$')]
y
得到
[]
这个版本也是这样
r = re.compile('^[0-9]+$')
for e in filter(r.match, ls):
print(e)
如何解决?
【问题讨论】:
-
re.search()?? -
^\d+$表示数字,只有数字从头到尾。 -
[x for x in ls if re.findall('\d [a-zA-Z]', x)]