首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将lambda函数写入函数

将lambda函数写入函数
EN

Stack Overflow用户
提问于 2021-10-01 23:09:12
回答 1查看 43关注 0票数 0

我有一个这样的lambda函数:

代码语言:javascript
复制
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory

factory = StemmerFactory()
stemmer = factory.create_stemmer()

df['tweets_stemming'] = df['tweets_stopwords'].apply(lambda x: [stemmer.stem(stem) for stem in x])

我想把这个lambda函数转换成函数,所以我写了这个:

代码语言:javascript
复制
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory

def stemmer_remover(stemming):
  factory = StemmerFactory()
  stemmer = factory.create_stemmer()
  stemming = [stemmer.stem(stemming) for stemming in df['tweets_stopwords']]

  return stemming

df['tweets_stemming'] = df['tweets_stopwords'].apply(stemmer_remover)

如果使用lambda函数,我的代码运行良好。但是,如果使用函数(而不是lambda)会给出一个错误TypeError: descriptor 'lower' requires a 'str' object but received a 'list'。所以,我想是因为我的熊猫数据帧来自df['tweets_stopwords'] (见图)

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-01 23:13:02

您的命名函数与lambda的工作方式不同。

代码语言:javascript
复制
lambda x: [stemmer.stem(stem) for stem in x]

与以下内容相同:

代码语言:javascript
复制
def stemmer_remover(x):
    return [stemmer.stem(stem) for stem in x]

如果你用上面的stemmer_remover替换你的lambda表达式,你会发现它的行为是一样的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69412733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档