gpt4 book ai didi

python re.compile() 和 re.findall()

转载 作者:行者123 更新时间:2023-11-30 22:02:55 26 4
gpt4 key购买 nike

所以我尝试只打印月份,当我使用时:

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)

它打印相同的列表,就像他们没有考虑我不想要这个数字的事实一样。

最佳答案

使用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']

关于python re.compile() 和 re.findall(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com