Python lambda函数如何串联工作。替换

Python lambda函数如何串联工作。替换,python,pandas,lambda,Python,Pandas,Lambda,我正在学习python,无法理解lambda函数如何使用replace的regex第一个参数来执行要用作第二个参数的子组切片 x如何成为子组 还是不是这样。。。。。。对于初学者,任何简单明了的解释都将不胜感激 df['text'].str.replace(r'(\w+day\b)', lambda x: x.groups()[0][:3]) 是groups()函数返回子组,lambda就是生成函数对象的方法。def和lambda之间的主要区别在于,lambda只是返回函数,而不是像def so

我正在学习python,无法理解lambda函数如何使用replace的regex第一个参数来执行要用作第二个参数的子组切片

x如何成为子组

还是不是这样。。。。。。对于初学者,任何简单明了的解释都将不胜感激

df['text'].str.replace(r'(\w+day\b)', lambda x: x.groups()[0][:3])
groups()
函数返回子组,lambda就是生成函数对象的方法。def和lambda之间的主要区别在于,lambda只是返回函数,而不是像
def some_name():pass中那样将函数对象分配给某个名称

在您的情况下,请注意x是一个重新匹配的对象。其方法-groups()-返回捕获组捕获的字符串元组
(\w+day\b)
。这很容易通过打印lambda函数的内部内容来观察。例如:

df = pd.DataFrame({'text': ['Monday', 'Tuesday']})

df['text'].str.replace(r'(\w+day\b)', lambda x: print(x))
输出:重新匹配对象;span=(0,6),匹配class='Monday'

再匹配对象;span=(0,7),匹配class='星期二'

df['text'].str.replace(r'(\w+day\b)', lambda x: print(x.groups()))
输出: (‘星期一’,) (‘星期二’,)


有关详细信息,请参见。

是否已检查文档中的
替换