gpt4 book ai didi

python - 在 Python 中执行多个列表理解的最有效方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:01 24 4
gpt4 key购买 nike

考虑到这三个列表推导式,是否有比三个深思熟虑的集合更有效的方法来做到这一点?我相信 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]

将这些全部组合成一个理解语句是否更有效?从可读性的角度来看,我知道这可能是一堆代码。

最佳答案

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

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]

我从未使用过停用词。如果它返回一个列表,您最好先将其转换为 set 以加快 word not in cachedStopWords 测试。

最后,NLTK包可能会帮助您处理文本。参见 @alvas' answer .

关于python - 在 Python 中执行多个列表理解的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45391553/

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