在Python中,如何将不同的项添加到另一个dict的dicts列表中?

时间:2010-08-26 17:40:18

标签: python

在Python中,原始词典列表如下:

orig = [{'team': 'team1', 'other': 'blah', 'abbrev': 't1'},
        {'team': 'team2', 'other': 'blah', 'abbrev': 't2'},
        {'team': 'team3', 'other': 'blah', 'abbrev': 't3'},
        {'team': 'team1', 'other': 'blah', 'abbrev': 't1'},
        {'team': 'team3', 'other': 'blah', 'abbrev': 't3'}]

需要获得一个新的dict列表,仅列出团队和简称但不同团队的列表,如下所示:

new = [{'team': 'team1', 'abbrev': 't1'},
       {'team': 'team2', 'abbrev': 't2'},
       {'team': 'team3', 'abbrev': 't3'}]

1 个答案:

答案 0 :(得分:4)

dict键是唯一的,您可以利用它:

teamdict = dict([(data['team'], data) for data in t])
new = [{'team': team, 'abbrev': data['abbrev']} for (team, data) in teamdict.items()]

无法建议dict可能是您首选的数据结构。

哦,我不知道dict()如何对列表中有几个相同的键的事实作出反应。在这种情况下,您可能必须构建字典而不是pythonesque:

teamdict={}
for data in t:
  teamdict[data['team']] = data

隐式覆盖双重条目