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

correct syntax to use the 'any' function with a list compression or generator

试图弄清楚如何将下面的函数变成使用 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)):

请注意,我们不需要构建列表(不需要 []),这使得内存效率更高。这可以在不使用 any 的情况下实现,但是,只需将代码中的 [] 替换为 (),然后将列表替换为生成器即可。

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