@allias173

Как определить первый элемент словаря в словаре?

Есть словарь:

a = {'a':{'aa':'bb'}, 'c':{'cc':'dd'}}

Мне нужно достать из этого словаря например 'bb'
print(a[0][1])
Но так не получается, можно только по названию ключей выводить их значения

Так же пробовал вот так
print(list(price.keys())[0][0])
Но это выведет только первую и единственную букву первого ключа, то есть 'a'

Суть в том, что бы создать что-то типа каталога
l = {'mebel':{'stol':'$10', 'kreslo':'$100'}}
Базу данных подключать неудобно, нужно как-то локально

Как еще это можно организовать?
Похоже со словарем не получится
  • Вопрос задан
  • 803 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Прежде всего надо учитывать, что до Python 3.7 словари были неупорядоченной коллекцией, а потому понятие "первый" не имело смысла. В Python 3.7 можно сделать так
def first(d):
    return next(iter(d.values() if d else []), None)

value = first(first(a))

Впрочем, в вашем случае это выглядит как подпирание костылём неправильно выбранных структур данных.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Velfr
for k,v in a.items():
    for _k, _v in k.items():
        return _v
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
в питон 3.6 делал список типа list c ключами словаря - чтобы упорядочить элементы, поэтому код ниже работает только в 3.7 как надо.
a = {'a':{'aa':'bb','ca':'dd'}, 'c':{'cc':'ee'}}
x,y=0,1
dd=a[list(a.keys())[x]][list(a[list(a.keys())[x]].keys())[y]]#вот тут достали 'dd'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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