Python Словарь Как создавать комбинации элементов списка? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть словарь, который имеет значение в виде списка.

thisdict = {  'G1' : [10,20],
              'G2' : [12,13]

}

Я хочу создать новый словарь со всеми возможными 4 комбинациями.

C1: [10,12]

C2: [10,13]

C3: [20,12]

C4: [20,13]

Как мне это создать?

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

Думаю, вы ищете: itertools.combinations ()

Это тоже может помочь Получение всех комбинаций пар ключ / значение в Python dict

1 голос
/ 29 мая 2020

Это приемлемо?

from itertools import product

d = {}
offset = 1
for e in product(thisdict['G1'], thisdict['G2']):
    d[f'C{offset}'] = list(e)
    offset += 1
print(d)

Вывод:

{'C1': [10, 12], 'C2': [10, 13], 'C3': [20, 12], 'C4': [20, 13]}
0 голосов
/ 29 мая 2020

Как уже было сказано, для этого вы можете использовать itertools.product.

Но у вас всего два списка, вы также можете просто использовать два цикла for:

> d = { f'C{i+1}': {'G1':g1e, 'G2':g2e}
      for i, (g1e, g2e) in
      enumerate((g1e, g2e) for g1e in thisdict['G1']
                           for g2e in thisdict['G2']) }
> d
{'C1': {'G1': 10, 'G2': 12},
 'C2': {'G1': 10, 'G2': 13},
 'C3': {'G1': 20, 'G2': 12},
 'C4': {'G1': 20, 'G2': 13}}

NB : Я использовал формат, запрошенный в комментарии к другому ответу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...