gpt4 book ai didi

python - 永远执行的代码

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:43 25 4
gpt4 key购买 nike

我有一个 python 代码花费了太多时间(它实际上从未完成)

imp_pos_words = ' '.join([i for i in pos_word_ls if i not in unimp_words])

'unimp_words' 是一个包含 99,000 个字母单词的列表'pos_word_ls' 是一个包含 15,40,000 个字母单词的列表

我实际上想从 'pos_word_ls' 中省略掉 'unimp_words' 中的所有单词

PS:'pos_word_ls' 有重复的单词,所以我无法将其转换为集合并执行减号。

请帮忙:)

最佳答案

当你检查 if i not in unimp_words 时,你正在遍历整个列表以查找 i 是否在列表中,这需要 O(n) 时间,其中 n 是列表的长度。因为你这样做了 15,40,000 次,所以它会非常慢。

相反,您可以使用set,这样会快得多。这是因为当您检查某个项目是否在集合中时,会使用哈希函数找出 i 在集合中的位置,这需要 O(1) 的时间。

要将您的列表 unimp_words 转换为集合,您可以使用 unimp_words = set(unimp_words)。现在,当您检查 if i not in unimp_words 时,它应该会快得多。

关于python - 永远执行的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47194755/

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