我可以通过举一个例子来最好地提出我的问题。假设我想使用列表推导从两个循环生成一组 3 元素元组,如下所示:
[ (y+z,y,z) for y in range(10) if y%2==0 for z in range(20) if z%3==0 ]
这有效,给我
[(0, 0, 0), (3, 0, 3), (6, 0, 6), (9, 0, 9), (12, 0, 12), (15, 0, 15), ... ]
不过,我想知道是否有一种方法可以更干净地做到这一点,例如
[ (x,y,z) for y in range(10) if y%2==0 for z in range(20) if z%3==0 ... somehow defining x(y,z) ... ]
我认为像这样的东西更干净,特别是因为我真正需要做的事情比我在这里给出的例子要复杂得多。我尝试过的所有方法都给出了语法错误。