Python:对包含列表值的字典进行迭代

时间:2019-11-13 16:20:43

标签: python loops

我有一个长度未知的字典,字符串作为键,列表作为vals

from collections import OrderedDict
vars = OrderedDict(( ('first', [0,1,2,3]),
                     ('second', [4,5]),
                     ('third', [6,7,8]),
                  ))

我需要以嵌套方式遍历每个列表。如果我知道字典的长度,那么我可以轻松做到:

for v1 in vars['first']:
    for v2 in vars['second']:
        for v3 in vars['third']:
            do_something(v1,v2,v3)

但是因为len(vars)未知,所以我不知道该怎么做。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用itertools.product,可为您提供列表中值的所有组合。

import itertools

for vals in itertools.product(*vars.values()):
    do_something(*vals)