因此,我尝试只打印月份,当我使用:
regex = r'([a-z]+) \d+'
re.findall(regex, 'june 15')它打印:六月,但是当我试图对这样的列表做同样的事情时:
regex = re.compile(r'([a-z]+) \d+')
l = ['june 15', 'march 10', 'july 4']
filter(regex.findall, l)它打印相同的列表,就像他们没有把我不想要的数字计算在内。
发布于 2018-12-10 00:10:37
使用map而不是filter,如下例所示:
import re
a = ['june 15', 'march 10', 'july 4']
regex = re.compile(r'([a-z]+) \d+')
# Or with a list comprehension
# output = [regex.findall(k) for k in a]
output = list(map(lambda x: regex.findall(x), a))
print(output)输出:
[['june'], ['march'], ['july']]奖金:
为了简化列表列表,可以这样做:
output = [elm for k in a for elm in regex.findall(k)]
# Or:
# output = list(elm for k in map(lambda x: regex.findall(x), a) for elm in k)
print(output)输出:
['june', 'march', 'july']https://stackoverflow.com/questions/53697934
复制相似问题