Задать вопрос
@Fenix888molo

Как сгенерировать вложенный словарь Python с нужными условиями?

Здравствуйте!

Как сгенерировать словарь, чтобы позиции с индексом 1, 2 и 6, 7 были вложенные, но при генерации 2 и 7 пропускало вообще дальше

Вот мой код, но мне он не дает нужный результат:
ODlist = [1, 2, 6, 7] 
LISTall = {x + 1: {y + 1: {z + 1:(list_of_lists[x][z + y]) for z in range(2) if y not in ODminus} if y in ODlist else list_of_lists[x][y] for y in range(len(list_of_lists[0]))} for x in range(n1, n2 - 1)}


ODlist = [1, 2, 6, 7]
LISTall = {x + 1: {y + 1: {z + 1:(list_of_lists[x][z + y]) for z in range(2) if y not in ODminus} if y in ODlist else list_of_lists[x][y] for y in range(len(list_of_lists[0]))} for x in range(n1, n2 - 1)}

Результат (часть):
{1: {1: 'ЗНАЧЕНИЕ', 2: {1: 'ЗНАЧЕНИЕ', 2: 'ЗНАЧЕНИЕ'}, 3: {}, 4: 'ЗНАЧЕНИЕ.', 5: 'ЗНАЧЕНИЕ', 6: 'ЗНАЧЕНИЕ', 7: {1: 'ЗНАЧЕНИЕ', 2: 'ЗНАЧЕНИЕ'}, 8: {}, 9: 'ЗНАЧЕНИЕ', 10: 'ЗНАЧЕНИЕ'}}

Как исключить из при генерации 3 и 8 позиции или как по другому можно реализовать?
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
aRegius
@aRegius
Python Enthusiast
data_dict = dict(enumerate(data, 1))

for key in (2, 6):
    data_dict[key] = {1: data_dict[key], 2: data_dict[key+1]}
    del data_dict[key+1]

data_dict = dict(enumerate(data_dict.values(), 1))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы