my_dict = {'a':[1,2], 'b':[3], 'c':{'d':[4,5], 'e':[6,7]}}
Мне нужно вывести все комбинации из него, как показано ниже.Сплит-словарь для python для получения всех комбинаций значений
{'a':1, 'b':3, 'c':{'d':4, 'e':6}}
{'a':1, 'b':3, 'c':{'d':4, 'e':7}}
{'a':1, 'b':3, 'c':{'d':5, 'e':6}}
{'a':1, 'b':3, 'c':{'d':5, 'e':7}}
{'a':2, 'b':3, 'c':{'d':4, 'e':6}}
и так далее. Там может быть любой уровень вложенности здесь
Пожалуйста, дайте мне знать, как достичь этого
что-то, что я пытался наклеена ниже, но, безусловно, не достигнув нигде
def gen_combinations(data):
my_list =[]
if isinstance(data, dict):
for k, v in data.iteritems():
if isinstance(v, dict):
gen_combinations(v)
elif isinstance(v, list):
for i in range(len(v)):
temp_dict = data.copy()
temp_dict[k] = v[i]
print temp_dict
my_dict = {'a':[1,2], 'b':[3], 'c':{'d':[4,5], 'e':[6,7]}}
gen_combinations(my_dict)
Что привело
{'a': 1, 'c': {'e': [6, 7], 'd': [4, 5]}, 'b': [3]}
{'a': 2, 'c': {'e': [6, 7], 'd': [4, 5]}, 'b': [3]}
{'e': 6, 'd': [4, 5]}
{'e': 7, 'd': [4, 5]}
{'e': [6, 7], 'd': 4}
{'e': [6, 7], 'd': 5}
{'a': [1, 2], 'c': {'e': [6, 7], 'd': [4, 5]}, 'b': 3}
Пожалуйста, сообщите, что вы пытались до сих пор! –
Предполагаю, что вы хотите сгладить вложенные дикты? –
@Suren Вы можете посмотреть обсуждение под моим ответом? Какой вывод для ключа 'e' вы хотите для' {'a': [1, 2], 'b': [3], 'c': {'d': {4: [3, 4]}, 'e': [6, 7, [1, 2]]}} '? –