如果您有未知数量的集合,我认为 for
并不是您所需要的构造。
如果我们查看 for
的定义,我们可以看到它是一个宏,它将每个集合的元素绑定到它们自己的符号。在您的第一个示例中,x
和 y
分别绑定到各自集合的值。唯一可以生成具有动态数量集合(因此是绑定)的 for
调用的方法是为 args
的大小定义一个新的宏,为 args
的每个元素生成一个符号,然后组装一个带有所有绑定的 for
调用。虽然可行,但我怀疑我们可能找到一个更简单的解决方案。
如果您的目标是从每个集合中收集获取每个可能项的每一种方式,可以使用在此处找到的 cartesian-product
函数 从 math.combinatorics
得到。