在 python 调试器或 django shell 中创建单行 for 循环很容易:
>>>> for x in (1,2,3,4):print(x);
>>>> for x in Obj.objects.all():something(x);
但是我怎样才能在那里得到第二个 for 循环呢?
>>>> for x in (1,2,3,4):print x;for y in (5,6):print x,y;
SyntaxError: invalid syntax
我很在意,因为在交互工作时,使用向上箭头编辑前面的命令很好(这不是在任何其他上下文中使用单行命令的尝试)。
注意:“打印”只是一个例子。在实际使用中,我会迭代对象或执行其他编程或调试任务,例如“for s in Section.objects.all():for j in s.children():print j”。我正在使用 Python 2.7。
最佳答案
对于列表推导式无法做到的时代
for x in (1,2,3,4):print x;exec("for y in (5,6):print x,y;")
或
for s in Section.objects.all():exec("for j in s.children():print j")
有时你可以像这样使用itertools.product
(但是没有办法得到print x
)
for x, y in itertools.product((1,2,3,4), (5,6)):print x,y)
关于python - 如何在调试器中的 python 2.7 中创建带有两个 for 循环的单行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19510477/