gpt4 book ai didi

Python itertools : Cartesian product with filtering of empty strings

转载 作者:太空宇宙 更新时间:2023-11-03 16:57:25 27 4
gpt4 key购买 nike

我正在编写一个脚本来使用所有可能的命令行参数调用程序。其中一些参数可以不存在。尝试#1:

args1 = ['program.exe']
args2 = ['1', '5', '']
args3 = ['--foo', '']
for args in itertools.product(args1, args2, args3):
args = [arg for arg in args if arg != '']
subprocess.call(list(args))

是否有另一种方法可以获取这些排列,而无需手动过滤掉空字符串?如果我把它留在参数列表中,事情就会崩溃。我的意思是,我的方法是有效的,但我觉得会有一些更内置的方法来处理这个问题。虽然读this question让我觉得这种可能性较小。

最佳答案

如果你想让它看起来更干净一点,你可以使用内置的filter()函数。

args = filter(lambda x: not x, args)

或者如果你不喜欢 lambda

args = filter(not_empty, args)

----

def not_empty(x):
return not x

我不知道如何仅使用 itertools 函数来完成此操作。

关于Python itertools : Cartesian product with filtering of empty strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295577/

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