2016-07-15 2 views
-2

У меня есть словарь:Python: Самый эффективный способ получить список комбинаций?

diff_params = {0: [a, b], 
       1: [c, d]} 

Каждый ключ является SETTING_NAME, и каждое значение является определенной настройки. Я хотел бы быть в состоянии сделать список как:

[[a, c], 
[a, d], 
[b, c], 
[b, d]] 

Я не могу понять, как сделать чисто, когда у меня есть 3 или 4 или 5 параметров, и каждый параметр имеет несколько вариантов.

+2

для чего нужны двоеточия? эти строки? edit '[0: a, 1: c]' не имеет смысла в python – ritlew

+0

Моя ошибка, они не должны были быть там. – user1367204

ответ

3

кажется, что вы более конкретно ищете itertools.product() который может быть использован, как это с unpacking:

from itertools import product 

result = product(*diff_params.values()) 

Вы, возможно, потребуется привести результат, если вы действительно хотите получить список списка (окружающий list бесполезен если вы используете Python 2, потому что map() верните список):

result = list(map(list, result)) 
+0

Это он, спасибо. – user1367204

Смежные вопросы