使用itertools来降低四个"for"stmt的复杂性?

use*_*514 1 python combinations python-itertools

我列出了4个清单:

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

我可以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]
Run Code Online (Sandbox Code Playgroud)

我可以知道我是否可以通过itertools模块完成这项工作?

谢谢

Sch*_*uki 5

是的你可以:

for n in itertools.product(list1, list2, list3, list4):
    print n
Run Code Online (Sandbox Code Playgroud)

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