Создание словаря из словаря, поменяв местами значения и ключи

Рейтинг: -1Ответов: 1Опубликовано: 09.02.2023
string_1 = input('Введите текст:')
dic_1 = {c: string_1.count(c) for c in string_1}
dic_2 = {el: [key] for key, el in dic_1.items()}
Нужно поменять местами значения и ключи
так в dic_2 [] добавить все kye в лист из dict_1 в моем примере добавляется только 1 элемент
т.е должно быть {1: ['j','g', 's'], 2:['t', 'f']} а получается  только {1:['j'], 2:['t']}
если можно то подробно спасибо!

Ответы

▲ -1Принят

Ваш код в ходе итераций перезатирал предыдущие значения. К примеру в переменную el приходила первый раз единица и она становилась ключом, словаря. Когда единица приходила еще раз в словаре был уже такой ключ потому по этому ключу перезаписывалось новое значение.

dic_2 = {el: [key] for key, el in dic_1.items()}

Попробуйте вот так:

string_1 = input('Введите текст:')
dic_1 = {c: string_1.count(c) for c in string_1}

dic_2 = {}
lst = []
tmp = set()

for _, key in dic_1.items():
  tmp.add(key)

tmp = list(tmp)

for i in range(len(tmp)):
  for item, key in dic_1.items():
    if key == tmp[i]:
      lst.append(item)
  dic_2[tmp[i]] = lst
  lst = []

print(dic_2)