Элегантный способ преобразования списка dict в dict dicts

У меня есть список словарей, как в этом примере:

listofdict = [{'name': 'Foo', 'two': 'Baz', 'one': 'Bar'}, {'name': 'FooFoo', 'two': 'BazBaz', 'one': 'BarBar'}] 

Я знаю, что «имя» существует в каждом словаре (а также в других ключах) и что оно уникально и не встречается ни в одном из других словарей в списке.

Мне нужен хороший способ получить доступ к значениям «два» и «один», используя ключ «имя». Думаю, словарь словарей был бы наиболее удобным? Подобно:

 {'Foo': {'two': 'Baz', 'one': 'Bar'}, 'FooFoo': {'two': 'BazBaz', 'one': 'BarBar'}} 

Имея эту структуру, я могу легко перебирать имена, а также получать другие данные, используя имя в качестве ключа. Есть ли у вас какие-либо другие предложения по структуре данных?

Мой главный вопрос: какой самый лучший и самый питонический способ сделать это преобразование?

 d = {} for i in listofdict: d[i.pop('name')] = i 

если у вас есть Python2.7 +:

 {i.pop('name'): i for i in listofdict} 
 dict((d['name'], d) for d in listofdict) 

является самым легким, если вы не против ключа name оставшегося в dict .

Если вы хотите удалить name s, вы все равно можете сделать это в одной строке:

 dict(zip([d.pop('name') for d in listofdict], listofdict))