![](https://img-blog.csdnimg.cn/img_convert/1cb22050686d44ababa62567cf28fab0.png)
可以在 Python 的 lambda 函数中使用 RegEx。您可以将其应用于任何将函数作为参数的 Python 方法或函数。这些功能和方法包括filter()、map()、any()、sort()等。
继续阅读我向您展示的如何在 lambda 函数中使用正则表达式。
我们将涵盖的内容
如何在 Lambda 函数的表达式中使用 RegExfilter()如何在带有函数的 Lambda 函数表达式中使用 RegExmap()如何在带有函数的 Lambda 函数表达式中使用 RegExsort()如何使用方法在 Lambda 函数的表达式中使用 RegEx
结论
如何在 Lambda 函数的表达式中使用 RegEx
lambda 函数可以采用 RegEx 作为其表达式的语法如下所示:
lambda x: re.method(pattern, x)
请注意,您必须对某些内容使用 lambda 函数。笔记本电脑插上电源但不充电?这是修复方法map()这就是、sort()、filter()和其他人的用武之地。
filter()如何在带有函数的 Lambda 函数表达式中使用 RegEx
我将向您展示的第一个示例使用该filter()函数:
import re
fruits = ['apple', 'mango', 'banana', 'cherry', 'apricot', 'raspberry', 'avocado']
filtered_fruits = filter(lambda fruit: re.match('^a', fruit), fruits)
# convert the new fruits to another list and print it
print(list(filtered_fruits)) # ['apple', 'apricot', 'avocado']
在上面的代码中:
将filter()lambda 函数作为要执行的函数,将fruits列表作为可迭代对象
对于lambda函数的表达式,它使用了Python RegEx的方法,并使用了参数上的re.match()模式^afruit
我做的最后一件事是将列表中与模式匹配的所有项目转换为列表
map()如何在带有函数的 Lambda 函数表达式中使用 RegEx
要在 lambda 函数内将 RegEx 与另一个函数(如 )一起使用map(),语法类似:
import re
fruits2 = ['opple', 'bonono', 'cherry', 'dote', 'berry']
modified_fruits = map(lambda fruit: re.sub('o', 'a', fruit), fruits2)
# convert the new fruits to another list and print it
print(list(modified_fruits)) # ['apple', 'banana', 'cherry', 'date', 'berry']
在上面的代码中:
使用函数modified_fruits循环遍历列表fruits2map()
使用re.sub()Python RegEx的方法作为lambda函数的表达式。
该re.sub方法允许您用第二个值替换第一个值。在示例中,它将所有出现的位置切换o为a。
sort()如何使用方法在 Lambda 函数的表达式中使用 RegEx
我将向您展示的最后一个示例使用sort()列表方法:
import re
fruits = [ 'banana', 'fig', 'grapefruit']
# sort fruits based on the number of vowels
fruits.sort(key=lambda x: len(re.findall('[aeiou]', x)))
print(fruits) #['fig', 'banana', 'grapefruit']
在代码中,lambda 函数根据元音的数量对列表进行排序。它结合方法len()、findall()Python RegEx 的方法和模式来实现[aeiou]。
元音数量最少的单词 fruit 排在最前面。如果您使用reverse=True,它会根据元音数量最多的水果排列水果 - 降序:
import re
fruits = [ 'banana', 'fig', 'grapefruit']
# sort fruits based on the number of vowels
fruits.sort(key=lambda x: len(re.findall('[aeiou]', x)), reverse=True)
print(fruits) # ['grapefruit', 'banana', 'fig']
结论
filter()在本文中,我们通过向您展示使用、map()函数和方法的示例,研究了如何将 RegEx 传递给 lambda 函数sort()。