@ratratrat

Как получить значение по ключу из первого словаря и сопоставить его со значением по ключу из второго?

У нас есть словарь с подсловарями, довольно большой:
{
    "Список": {
        "0": "*Аманжуров Тимур* —",
        "1": "*Блинов Денис* —",
        "2": "*Григорьева Мария* —",
        "3": "*Дедов Павел* —",
        "4": "*Дубков Александр* —",
        "5": "*Зелинский Даниил* —",
        "6": "*Зотов Денис* —",
        "7": "*Козлов Арсентий* —",
        "8": "*Колягин Артем* —",
        "9": "*Крутов Данил* —",
        "10": "*Кряженкова Алина* —",
        "11": "*Меньшов Геннадий* —",
        "12": "*Мишина Алина* —",
        "13": "*Наговский Даниил* —",
        "14": "*Нагорных Максим* —",
        "15": "*Овсянников Вячеслав* —",
        "16": "*Петренко Вадим* —",
        "17": "*Прощаев Максим* —",
        "18": "*Пугин Андрей* —", 
        "19": "*Сергеев Илья* —",
        "20": "*Совгирь Виктор* —",
        "21": "*Талызин Валерий* —",
        "22": "*Фокин Александр* —",
        "23": "*Хромов Андрей* —",
        "24": "*Чеснокова Анна* —",
        "25": "*Штернфельд Олег* —"
    },
    "Проценты": {
        "0": 21,
        "1": 12,
        "2": 21,
        "3": 22,
        "4": 15,
        "5": 23,
        "6": 21,
        "7": 19,
        "8": 21,
        "9": 25,
        "10": 35.4,
        "11": 15,
        "12": 26.4,
        "13": 23,
        "14": 22,
        "15": 26.4,
        "16": 0,
        "17": 17,
        "18": 22,
        "19": 0,
        "20": 44.1,
        "21": 10,
        "22": 10,
        "23": 26.8,
        "24": 30,
        "25": 25
    }
}

Нужно из первого словаря "Список" получить фамилию с именем и сопоставить её со значением из второго словаря "Проценты"
К примеру, Аманжуров имеет 21% - подставляем к его фамилии
Всё работает, если нет сортировки процентов, следующим циклом:
for x, y in zip(rating, percents):
    rating_cources = rating.get(str(key))
    percent_cources = percents.get(str(key))
    key += 1
    layout += f'{rating_cources} {percent_cources}%\n'

Но как сделать так, чтобы если была сортировка (а она есть, с уже записью в новый словарь), то можно было, получив значение по ключу из второго словаря ("Проценты"), взять фамилию с именем и приписать проценты к ней, при этом изменив первый словарь "Список", отсортировав его по процентам?
Думаю, что объяснил более-менее.
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@o5a
# проходим по словарю с фамилиями
for key, value in rating.items():
    rating_cources = value
    # и по ключу из первого словаря берем значения из второго
    percent_cources = percents.get(key)
    layout += f'{rating_cources} {percent_cources}%\n'


Если нужна сортировка по процентам, то можно сделать наоборот - проходить по второму словарю, сортированному по процентам, и доставать фамилии из первого по ключу
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы