С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/103: Рейтинг темы: голосов - 103, средняя оценка - 4.54
983 / 327 / 79
Регистрация: 10.04.2012
Сообщений: 1,219
Записей в блоге: 2
1

Определить ключ словаря по значению

22.02.2021, 20:36. Показов 19602. Ответов 4

Author24 — интернет-сервис помощи студентам
Добрый день!

Подскажите как определить ключ словаря по одному значению?
Python
1
2
d = {0: 0, 1: [1,2,3], 2: [4,5,6,7]}
a = 5
В результате нужно получить 2 т.е. пятерка находится в списке ключа 2

Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
22.02.2021, 20:36
Ответы с готовыми решениями:

Как получить из словаря первый ключ
Здравствуйте, не могу понять, как можна получить из словаря значение ключа первого элемента

Сортировка словаря по значению
Функция сортировки по алфавиту: def alphabet_sort(to_sort: dict) -> dict: # Сортировка в...

Сортировка словаря по значению
Добрый день Всем! Есть словарь dict1 = { "first": 10, "second": 15, "third": 15, ...

Доступ к значению словаря
У меня несколько вопросов. Возможно, глупых... У меня есть json-файл с большой вложенностью. Я...

Составной ключ (для Словаря)
Люди, здравствуйте. Вот, есть такая задача: доставать из БД записи таблицы с 4 полями. Три из...

4
Автоматизируй это!
Эксперт Python
7209 / 4703 / 1224
Регистрация: 30.03.2015
Сообщений: 13,405
Записей в блоге: 29
22.02.2021, 20:44 2
VistaSV30, магических способов нет - в цикле перебирать значения и искать там

Добавлено через 5 минут
Python
1
2
3
4
5
6
7
8
9
10
>>> a_dict = {0: 0, 1: [1,2,3], 2: [4,5,6,7]}
>>> to_found = 5
>>> for k,v in a_dict.items():
...     if (isinstance(v,list) and to_found in v) or to_found==v:
...         print(f'Key = {k}')
...         break
... else:
...     print(f'Cant find value {to_found}')
... 
Key = 2
0
983 / 327 / 79
Регистрация: 10.04.2012
Сообщений: 1,219
Записей в блоге: 2
22.02.2021, 20:53  [ТС] 3
Интересно почему так происходит?
Python
1
2
3
4
5
6
7
i = 2
a in d[i] # возвращает True
 
# поиск в цикле приводит к ошибке
for i in range(len(d)):
    if a in d[i]:
        print(i)
Добавлено через 6 минут
Получается проще переделать словарь
Python
1
2
3
4
5
6
7
8
9
d = {0: 0, 
     1: 1,
     2: 1,
     3: 1, 
     4: 2,
     5: 2,
     6: 2,
     7: 2}
d[5]
0
Автоматизируй это!
Эксперт Python
7209 / 4703 / 1224
Регистрация: 30.03.2015
Сообщений: 13,405
Записей в блоге: 29
22.02.2021, 20:54 4
Лучший ответ Сообщение было отмечено VistaSV30 как решение

Решение

Цитата Сообщение от VistaSV30 Посмотреть сообщение
Интересно почему так происходит?
не интересно, первое значение не список, а ноль
1
983 / 327 / 79
Регистрация: 10.04.2012
Сообщений: 1,219
Записей в блоге: 2
22.02.2021, 21:02  [ТС] 5
Понял!
Нужно все значения словаря переделать с списки
Python
1
2
3
4
5
6
7
d = {0: [0,0], 1: [1,2,3], 2: [4,5,6,7]}
 
a = 5
 
for i in range(len(d)):
    if a in d[i]:
        print(i)
0
22.02.2021, 21:02
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
22.02.2021, 21:02
Помогаю со студенческими работами здесь

Получить ключ по значению словаря
Можно ли как нибудь Получить ключ по значению словаря? Причем вариант тупого перебора работает...

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

Создание словаря ключ - значение на C
Здравствуйте! Нужно создать структуру словарь типа ключ - значение на языке C. С возможностью...

Ключ для бинарного дерева-словаря
Задание: описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых...

Объединение параметров под один ключ словаря
Имеются результаты итерации в виде 'объект - характеристика' Как получить словарь:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru