在Python中执行多个列表推导的最有效方法

在Python中执行多个列表推导的最有效方法,第1张

概述鉴于这三个列表理解,有没有更有效的方法来做到这一点,而不是三个故意集?我相信在这种情况下for循环可能是糟糕的形式,但如果我在rowsaslist中迭代大量的行,我觉得我下面的内容并不那么有效. cachedStopWords = stopwords.words('english')rowsaslist = [x.lower() for x in rowsaslist]rowsaslist 鉴于这三个列表理解,有没有更有效的方法来做到这一点,而不是三个故意集?我相信在这种情况下for循环可能是糟糕的形式,但如果我在rowsasList中迭代大量的行,我觉得我下面的内容并不那么有效.

cachedStopWords = stopwords.words('english')rowsasList = [x.lower() for x in rowsasList]rowsasList = [''.join(c for c in s if c not in string.punctuation) for s in rowsasList]rowsasList = [' '.join([word for word in p.split() if word not in cachedStopWords]) for p in rowsasList]

将这些全部合并为一个理解陈述更有效吗?我从可读性的角度来看,它可能是一堆乱七八糟的代码.

解决方法 您可以简单地定义2个函数并在一个列表理解中使用它们,而不是在同一个列表上迭代3次:

cachedStopWords = stopwords.words('english')def remove_punctuation(text):    return ''.join(c for c in text.lower() if c not in string.punctuation)def remove_stop_words(text):    return ' '.join([word for word in p.split() if word not in cachedStopWords])rowsasList = [remove_stop_words(remove_punctuation(text)) for text in rowsasList]

我从来没用过停字.如果它返回一个列表,你最好先将它转换为一个集合,以加速不在cachedStopWords测试中的单词.

最后,NLTK软件包可以帮助您处理文本.见@alvas’ answer.

总结

以上是内存溢出为你收集整理的在Python中执行多个列表推导的最有效方法全部内容,希望文章能够帮你解决在Python中执行多个列表推导的最有效方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存