Python返回范围列表的组合?

tij*_*jko 1 python list permutation

我正在根据范围列表返回列表的所有组合.

所以,如果我有:

test_list = [range(0,11,1),range(0,11,2),range(0,11,5)]
Run Code Online (Sandbox Code Playgroud)

我想根据范围返回包含所有可能组合的列表.例如:

output_list[[0,0,5],[0,0,10],[0,2,0],[0,4,0],[0,6,0].......]
Run Code Online (Sandbox Code Playgroud)

但我所能做的就是:

import itertools

test_list = [range(0,11,1),range(0,11,2),range(0,11,5)]
output_list = []
for i in itertools.permutations(test_list):
    if i not in output_list:
        output_list.append(i)
Run Code Online (Sandbox Code Playgroud)

哪个返回每个范围的置换,(范围列表再次)?

dav*_*ave 9

output_list = list(itertools.product(*test_list))
Run Code Online (Sandbox Code Playgroud)

  • @tijko:`*`splat运算符用于将`test_list`解压缩为一组参数. (2认同)
  • 这是[元组/列表解包](http://docs.python.org/tutorial/controlflow.html#tut-unpacking-arguments).基本上,它将`func([a,b,c])`变成`func(a,b,c)`.基本上`*[a,b,c]`与`a,b,c`相同 (2认同)