-3

我有一个这样的字典列表:

[
    {
        'flight_id': 'f123',
        'pax': 234,
        'airline': 'Foo Airways'
    },
    {
        'flight_id': 'f124',
        'pax': 200,
        'airline': 'Bar Airways'
    }
]

我想从中动态构建一个新的数据结构,如下所示:

{
    'f123': {'pax': 234, 'airline': 'Foo Airways'},
    'f124': {'pax': 200, 'airline': 'Bar Airways'}
}

基本上,我需要一种将字典值转换为新字典中的键名的方法。

任何帮助,将不胜感激。

谢谢。

4

2 回答 2

4

您可以使用列表推导:

flights = dict((f.pop('flight_id'), f) for f in flights)

这将取代以前的数据结构。

Python 2.7+ 具有 dict 理解:

flights = {f.pop('flight_id'): f for f in flights}
于 2012-09-24T00:50:42.343 回答
1
>>> d = [
...     {
...         'flight_id': 'f123',
...         'pax': 234,
...         'airline': 'Foo Airways'
...     },
...     {
...         'flight_id': 'f124',
...         'pax': 200,
...         'airline': 'Bar Airways'
...     }
... ]
>>> itms = [x.pop('flight_id') for x in d]
>>> dict(zip(itms,d))
{'f124': {'pax': 200, 'airline': 'Bar Airways'}, 'f123': {'pax': 234, 'airline':
 'Foo Airways'}}
于 2012-09-24T00:48:36.630 回答