使用 itertools 来降低四个“for”的复杂性斯蒂姆?

发布于 2024-11-14 06:59:17 字数 491 浏览 4 评论 0原文

我有 4 个列表:

list1, list2, list3, list4 = range(0,4), range(4,9), range(8,15), range(2,16)
# just using range() generate sample data  

我可以通过以下代码按序列 list1_item、list2_item、list3_item、list4_item 列出所有项目组合:

for item1 in list1:
    for item2 in list2:
        for item3 in list3:
             for item4 in list4:
                   print [item1, item2, item3, item4]

我是否可以通过 itertools 模块?

谢谢

I have list 4 lists:

list1, list2, list3, list4 = range(0,4), range(4,9), range(8,15), range(2,16)
# just using range() generate sample data  

I can list all the items combination by sequence list1_item, list2_item, list3_item, list4_item via below code:

for item1 in list1:
    for item2 in list2:
        for item3 in list3:
             for item4 in list4:
                   print [item1, item2, item3, item4]

May I know if I can do this job via itertools module?

Thanks

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

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

发布评论

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

评论(2

昔梦 2024-11-21 06:59:17

是的,您可以:(

for n in itertools.product(list1, list2, list3, list4):
    print n

n 将是一个元组而不是列表)。

Yes, you can:

for n in itertools.product(list1, list2, list3, list4):
    print n

(n will be a tuple instead of a list).

甜嗑 2024-11-21 06:59:17

我认为你想要的是 itertools.product

import itertools
ret = list ( itertools.product( list1, list2, list3, list4 ) )

而 ret 就是结果。

I think what you want is itertools.product

import itertools
ret = list ( itertools.product( list1, list2, list3, list4 ) )

And ret is the result.

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