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

Как узнать индекс одного словаря из списка словарей?

a = [{"one": 10}, {"two": 20}, {"three": 30}]

1. Как узнать индекс нужного словаря зная только его ключ:
ПРИМЕР: Знаю ключ "two" нужно получить индекс, -> 1

2. Или как узнать значение ключа зная только его(Зная только КЛЮЧ). Почему предлог ИЛИ? Да потому что если я узнаю ответ на 2 вопрос то с помощью значения и ключа через .index я смогу узнать индекс словаря.

P.S Для меня 2 вариант лучше.
  • Вопрос задан
  • 314 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F
1:

index = next((i for i, n in enumerate(arr) if key in n), -1)


2:

value = next((n[key] for n in arr if key in n), None)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
b = {k:v for i in a for k, v in i.items()}.get('two')
Ответ написан
seven5674
@seven5674
Старый я уже что бы что-то в себе менять
ИМХО каждый раз гонять список перебором как-то не комильфо
Если ключи уникальные то скорее всего не правильная структура данных

Перегнать один раз
a = [{"one": 10}, {"two": 20}, {"three": 30}]
n = dict()
for i in a:
    n.update(i)

и
print(n["two"])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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