Python 中的嵌套 for 循环

发布于 2024-11-30 18:51:39 字数 250 浏览 0 评论 0原文

我想做类似的事情

for a in [0..1]:
    for b in [0..1]:
        for c in [0..1]:
            do something

,但是,我可能有 15 个不同的变量。有没有更简单的方法,例如

for a, b, c in [0..1]:
    do something

感谢您的帮助

I want to do something like

for a in [0..1]:
    for b in [0..1]:
        for c in [0..1]:
            do something

But, I might have 15 different variables. Is there a simpler way like

for a, b, c in [0..1]:
    do something

Thanks for any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北城挽邺 2024-12-07 18:51:39

itertools.product

import itertools
for a,b,c in itertools.product([0, 1], repeat=3):
  # do something

itertools.product:

import itertools
for a,b,c in itertools.product([0, 1], repeat=3):
  # do something
原谅我要高飞 2024-12-07 18:51:39

您可以迭代所有这些的乘积。使用 itertools.product 并传递您的范围。

import itertools
for i in itertools.product(range(2), range(3), range(2)):
print (i)

产量

(0, 0, 0)
(0, 0, 1)
(0, 1, 0)
(0, 1, 1)
(0, 2, 0)
(0, 2, 1)
(1, 0, 0)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1) 
(1, 2, 0)
(1, 2, 1)

You can iterate over the product of all of them. Use itertools.product and pass in your ranges.

import itertools
for i in itertools.product(range(2), range(3), range(2)):
print (i)

yields

(0, 0, 0)
(0, 0, 1)
(0, 1, 0)
(0, 1, 1)
(0, 2, 0)
(0, 2, 1)
(1, 0, 0)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1) 
(1, 2, 0)
(1, 2, 1)
暖阳 2024-12-07 18:51:39

听起来你有一个需要处理的变量矩阵/列表。因此,最好的(也是最快的)解决方案是使用矩阵/列表工具。

如:Python itertools 包。

正如其他人所暗示的那样,itertools.product可能就是您想要的。但是,请参阅以下位置的完整列表:
http://docs.python.org/library/itertools.html

祝你好运。

It sounds like you have a matrix/list of variables you need to process. Thus, the best (and speediest) solution is to use a matrix/list tool.

Such as: The Python itertools package.

As other have hinted, itertools.product is probably what you want. But, see the full list at:
http://docs.python.org/library/itertools.html

Good luck.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文