2014-10-15 2 views
0

В питоне, учитывая ДИКТ-оф-dicts, говорят:Манипуляции ключей в ДИКТ-оф-dicts в питоне

example = {0: {}, 1: {'foo': 0}, 2: {'foo': 1}, 3: {'foo':0, 'bar':1}, 4: {'bar':0}} 

И конкретный ключ (возможно), которые хранятся в одном или нескольких внутренних словарях , Я бы хотел найти внешний ключ и внутреннее значение, связанное с этим ключом.

Очевидно, просто итерация внешних ключей работы:

value = 'foo' 
for outer_key in example: 
    if value in example[outer_key]: 
     do_things() 

Это хороший/Pythonic способ сделать это? Я столкнулся с несколькими вариантами этой структуры, что кажется неудобным, когда вам нужны внутренние ключи, не зная их или где они находятся.

Я что-то упустил?

+0

Что такое «внешний ключ и внутреннее значение», связанный с (например,) '' foo'' в вашем примере? Почему бы не переработать структуру данных, чтобы в первую очередь искать вещи на основе внутреннего ключа? –

+0

Пакеты других людей. Здесь я хотел бы узнать, что ключ 1 имеет значение foo 0, ключ 2 имеет значение foo 1, а ключ 3 имеет значение foo 0. – Excalabur

ответ

0

Чтобы быть немного больше питоновски, вы можете перебирать над items из example:

for outer_key, inner_dict in example.items(): 
    if value in inner_dict: 
     do_things() 
0

Единственный способ вы можете узнать ключ, связанный со значением в словаре является перебором Dict , Мне жаль, но нет другого способа, о котором я знаю.

Смежные вопросы