将 'any' 函数与列表压缩或生成器一起使用的正确语法



试图找出如何将下面的功能变成使用任何功能的功能。这样就不必构建整个列表,然后检查列表。还有比我如何处理此问题的效率更高(找到所有排列,而不是匹配。

import itertools
def is_merge(s, part1, part2):
    for x in [''.join(word) for word in (itertools.permutations(part1+part2))]:
        if x == s:
            return True
     return False

我不确定执行此操作的最有效方法,但是使用any看起来会这样:

import itertools
def is_merge(s, part1, part2):
    return any(''.join(word) == s for word in itertools.permutations(part1+part2)):

请注意,我们不需要构建一个列表(无[]),从而使内存效率更高。但是,只需用()在代码中替换[],就可以实现这一目标,从而可以用CC_5替换列表。

还请注意,您在(itertools.p...)上有一对额外的括号。

相关内容

最新更新