首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python对itertools.permutations进程进行细分

用Python对itertools.permutations进程进行细分
EN

Stack Overflow用户
提问于 2014-07-02 12:28:05
回答 1查看 226关注 0票数 0

是否有任何方法细分占用大量内存的进程(在本例中为itertools.permutations),以提高效率和不耗尽内存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-02 14:42:17

你已经用itertools.permutations把自己逼到了绝境。你真的需要检查所有可能的排列吗?您的字典非常小,所以只需遍历字典本身并验证每个单词:

代码语言:javascript
复制
import itertools
from collections import Counter

with open('/usr/share/dict/american-english', 'r') as handle:
    dictionary = frozenset(line.strip() for line in handle)

def existing_words(letters, length):
    letters_counter = Counter(letters)
    letters_set = frozenset(letters)

    for word in dictionary:
        if len(word) != length:
            continue

        if set(word) <= letters_set and Counter(word) <= letters_counter:
            yield word

if __name__ == '__main__':
    for word in existing_words('abcdefghijklmnopqrst', 5):
        print word
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24531076

复制
相关文章

相似问题

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