试图找出如何将下面的功能变成使用任何功能的功能。这样就不必构建整个列表,然后检查列表。还有比我如何处理此问题的效率更高(找到所有排列,而不是匹配。
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...)
上有一对额外的括号。